以斜杠结尾的目录名和不以斜杠结尾的目录名有什么区别?

far*_*d99 1 slash filenames files

目录名称之间是否有任何区别,例如

mydirectory
Run Code Online (Sandbox Code Playgroud)

mydirectory/
Run Code Online (Sandbox Code Playgroud)

我注意到当我ls在某些目录中执行时会发生这种情况- 有些目录名称有斜杠,有些没有。这是有问题的,因为如果我想访问目录中包含的文件,我可能需要在末尾添加一个斜杠:

vi $mydirectory"/"$myfile
Run Code Online (Sandbox Code Playgroud)

或者干脆做

vi $mydirectory$myfile
Run Code Online (Sandbox Code Playgroud)

fro*_*utz 7

没有/它也可能是一个文件。

在某些情况下,它可能是致命的。例如在使用时mv

mv file1 mydirectory
mv file2 mydirectory
mv file3 mydirectory
Run Code Online (Sandbox Code Playgroud)

好的?但是,如果mydirectory不存在或不是目录,则最终结果是file1file2消失了,file3现在命名为mydirectory.

mv file1 mydirectory/
mv file2 mydirectory/
mv file3 mydirectory/
Run Code Online (Sandbox Code Playgroud)

如果mydirectory不存在,您得到的只是三个错误消息 和file1file2file3仍然存在。

所以/消除了一些歧义。

除此之外,真的没有任何规则。某些程序的行为可能会有所不同,具体取决于您是否/在最后提供了。这取决于他们如何看待它。

在某些情况下,如果使用太多/. 例如,在其输出中find保持剩余/,如果您尝试使用简单的字符串比较而不是说realpath或其他方式查找文件/路径名,这可能会绊倒您。