我的主目录的副本来自哪里?

我的主目录的副本来自哪里?

我正在开发一个使用 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以确保要删除它,然后删除它。

相关内容