我正在开发一个使用 Ubuntu 和 gphoto2 控制我的数码相机的项目。有一次,我注意到项目文件夹 /home/greg/project/~ 中有一个新的“~”目录。当我进入这个新的“~”目录时,它会将我带回到我的主目录 /home/greg/ (如您所料)。
我不知道这是怎么发生的,但我怀疑当我在命令行上运行 gphoto2 并指定输出文件时,我输入了“~/filename.jpg”,期望该文件会显示在我的主目录中,但是相反,bash 在工作目录中放置一个新的“~”目录。我不知道可以做这样的事情(如果确实发生了的话)。
比它是如何到达那里更重要的是我应该如何摆脱它。我无法删除该目录,因为据我所知是我的主目录。它似乎不是一个符号链接(至少不是根据 ls -l ),但我不确定这到底意味着什么。
答案1
您需要引用它以防止 shell 扩展。
ls ~ # list your home directory
ls "~" # list the directory named ~
ls \~ # list the directory named ~
rm
与、rmdir
等相同。shell在将其传递给命令之前会更改~
为,除非您引用或转义它。/home/greg
您可以通过以下方式查看echo
:
anthony@Zia:~$ echo ~
/home/anthony
anthony@Zia:~$ echo \~
~
你要小心,因为这rm -Rf ~
将是一场灾难。我建议如果有任何疑问,首先将其重命名 ( mv -i \~ newname
),然后您可以检查newname
以确保要删除它,然后删除它。