在主目录中包装点文件夹周围的引号会破坏bash命令

时间:2017-11-15 15:51:05

标签: linux bash dotfiles

在主文件夹中包装点文件夹周围的引号会破坏所有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等环境变量。

编辑1

为什么我不能使用$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 

1 个答案:

答案 0 :(得分:2)

引用~可防止shell扩展它。只有特定的角色需要不加引号:

ls ~"/.cache/"

最佳做法是改为使用"$HOME/.cache"