Answers:
点(.
)只是.
目录内的目录,该目录与目录本身相同(ls -la /foo
将向您显示)。因此,如果您将其复制foo/.
到其他地方,则可以有效地复制下面的所有树,foo
而无需复制foo
自身(将其复制到foo2/.
与相同的树foo2
)。
/foo/*
被shell扩展到中的非隐藏文件和目录的列表/foo
,因此除了dotfiles / dotdirs之外,它还会将相同的目录结构复制/foo
到/foo2
中。有效地,cp
将(可能)接收许多参数。如果列表太大,甚至可能导致执行cp
失败。
set -x
或echo cp -pr /foo/* /foo2
查看正在发生的事情。重要的是要意识到,是外壳扩展了通配符。cp
没有看到星星。
cp -r /foo/*
,和一样cp /foo/*
吗?