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)
没有/
它也可能是一个文件。
在某些情况下,它可能是致命的。例如在使用时mv
:
mv file1 mydirectory
mv file2 mydirectory
mv file3 mydirectory
Run Code Online (Sandbox Code Playgroud)
好的?但是,如果mydirectory
不存在或不是目录,则最终结果是file1
和file2
消失了,file3
现在命名为mydirectory
.
mv file1 mydirectory/
mv file2 mydirectory/
mv file3 mydirectory/
Run Code Online (Sandbox Code Playgroud)
如果mydirectory
不存在,您得到的只是三个错误消息 和file1
,file2
和file3
仍然存在。
所以/
消除了一些歧义。
除此之外,真的没有任何规则。某些程序的行为可能会有所不同,具体取决于您是否/
在最后提供了。这取决于他们如何看待它。
在某些情况下,如果使用太多/
. 例如,在其输出中find
保持剩余/
,如果您尝试使用简单的字符串比较而不是说realpath
或其他方式查找文件/路径名,这可能会绊倒您。