要将一个目录复制到另一个目录,第一个目录应该不带尾部斜杠:
# example 1
# this command will copy dir1 to dir2
# (dir2 is preexisting)
cp -Rip dir1 dir2/
否则,该命令将复制目录内容而不是目录本身:
# example 2
# this command will copy dir1 contents to dir2
# (dir2 is preexisting)
cp -Rip dir1/ dir2/
dir1
我确实理解和这里之间的区别dir1/
,并且这两个命令的行为方式之间的区别不会让我感到困惑。
但是,如果要将目录复制到当前所在的同一目录而不是另一个目录,则尾部斜杠不会产生任何区别。为什么?
# example 3
# any of these commands will make a dir1 copy
# (dir1-copy isn't preexisting)
cp -Rip dir1 dir1-copy/
cp -Rip dir1/ dir1-copy/
还有另一个密切相关的问题。mv dir1/ dir2/
为什么how和work没有区别mv dir1 dir2/
?换句话说,为什么源目录末尾的尾部斜杠mv
遵循示例三的逻辑cp
,而不是示例一和示例二的逻辑?
macOS 14.3.1、zsh 5.9 (x86_64-apple-darwin23.0)