该文件已移动到您所在的实际父目录,而不是您遵循的符号链接的父目录。默认情况下,cd与遇到ls或mv时的行为不同..。 cd只是沿着路径向上,有效地反向跟踪符号链接,而其他人则转到它们所在目录的实际父目录,无论您是如何到达那里的。
想象一下这样的目录树(~是主目录,shortcut是到 的符号链接maindir/subdir):
~
??? maindir/
? ??? subdir/
? ??? file.txt
??? shortcut -> maindir/subdir/
Run Code Online (Sandbox Code Playgroud)
如果你只是cd为了~/shortcut然后ls会显示file.txt,并且pwd会显示~/shortcut。 但是,虽然pwd根据您遵循的符号链接, 的输出是正确的,但您实际上(“物理上”,如果您愿意的话)在~/maindir/subdir. ls并mv意识到这一点,因此mv file.txt ..将移至file.txt实际的父目录:~/maindir,而不是~像您预期的那样。
您可以cd通过使用-P开关来表现得像其他人一样。因此,如果您在最初mv从 ( ~/shortcut) 运行命令并运行的目录中cd -P ..,它将带您到实际的父目录(例如~/maindir),您将能够file.txt使用简单的ls file.txt. (您也可以使用cd -P ..进入实际的当前目录。)