/foo/bar
如何将包含文件的文件夹的所有内容复制/foo/bar/a
到空子文件夹,/foo/bar/subfolder
而不以文件结尾/foo/bar/subfolder/subfolder/a
。做cp -r * subfolder/
进去/foo/bar
是行不通的。
系统是Ubuntu 18.04 LTS。
答案1
cd /foo
cp -Rp bar subfolder
mv subfolder bar
这可以避免subfolder/subfolder
在所有 Unix 系统上通过subfolder
在.它通过递归复制来创建新文件夹。然后将新目录移动到.bar
/foo
bar
/foo/bar
命令的顺序也可以是
cd /foo
rsync -a bar/ subfolder
mv subfolder bar
答案2
一种解决方案是使用
cp -r . subfolder/
然而,相反,这仍然会向 stderr 打印恼人的“无法将文件夹复制到自身”。
使用rsync
代替解决了问题,
rsync -r . subfolder/