/ this / is / a / path和/ this / is / a / path /有很大区别吗?

我是一个多年的CentOS用户,但我仍然不确定最终的斜杠在linux命令中是如何的,例如

  • 柏油
  • rsync的
  • MV
  • 文件处理在软件/ PHP

什么是结束和不以斜线结束的path之间的实际区别?

答案是“这取决于”。 许多命令并不在意,尽pipe如果给定的文件名是符号链接到目录,这会改变。 使用尾部斜线,大多数命令将使用符号链接指向的目录,而不使用尾部斜线,命令将使用符号链接本身。

有些命令(如rsync行为完全不同,例如在rsync的源端添加一个斜线时,会将目录的内容复制到指定目标位置的其他服务器。 没有它,目录本身是在目的地创build,然后内容被复制到。 如有疑问,请阅读文档(search“尾随”是一个好的开始)。

事实是,它一般取决于命令的运行

例如,带斜线的rsync专门从该目录的内容开始,而不使用斜线将从该目录开始,然后是其内容。 对于大多数命令的所有意图和目的,它不会很重要,但如果你不确定你参考每个命令的手册,例如

 man rsync 

我不是100%肯定,尾部的斜线如何影响cp,mv,rm,尽pipe我的经验没有任何实际的效果。

例如

赛跑

cp -r dir1 dir2

会给你同样的结果

cp -r dir1 / dir2

这绝对是rsync的问题。 在rsync中,包含和省略尾部斜杠之间的区别在于同步目录内容或目录本身与内容之间的区别。

例如

rsync -a dir1 dir2

将在dir2下创build一个dir1

rsync -a dir1 / dir2

将直接在dir2中创builddir1中的任何文件的副本

这真的取决于程序。 例如,find将会跟踪符号链接上的文字。

mkdir dir1 ln -s dir1 dir2

finddir2 -type d

将什么都不返回

finddir2 / -type d

会find“dir2 /”并继续通过dir1recursion。