在主文件夹中包装点文件夹周围的引号会破坏所有shell命令,例如:
[jeff@mypc 0]$
[jeff@mypc 0]$ ls "~/.cache/"
ls: cannot access ~/.cache/: No such file or directory
[jeff@mypc 0]$ ls ~/.cache/
event-sound-cache.tdb.7187a0911f063e087eac3cc10000002b.x86_64-redhat-linux-gnu
mozilla
[jeff@mypc 0]$
我需要使用一些转义序列吗?
我需要使用引号,因为我正在访问可能包含空格的子文件夹。我无法将~
快捷方式扩展为/home/jeff
,因为我需要它可以为任何用户工作。我有其他限制因素阻止我使用$HOME
或$USER
等环境变量。
为什么我不能使用$HOME
?英特尔Fortran显然有一些问题:
program mwe
implicit none
character(len = :), allocatable :: f
integer :: unit, io
f = '"$HOME/.cache/test.txt"'
print *, 'f = ', f
open(file = f, newunit = unit, iostat = io)
print *, 'io = ', io ! io = 29, i.e. file not found
end program mwe
答案 0 :(得分:2)
引用~
可防止shell扩展它。只有特定的角色需要不加引号:
ls ~"/.cache/"
最佳做法是改为使用"$HOME/.cache"
。