递归地将文件夹复制到空子文件夹

递归地将文件夹复制到空子文件夹

/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/foobar/foo/bar

命令的顺序也可以是

cd /foo
rsync -a bar/ subfolder
mv subfolder bar

答案2

一种解决方案是使用

cp -r . subfolder/

然而,相反,这仍然会向 stderr 打印恼人的“无法将文件夹复制到自身”。

使用rsync代替解决了问题,

rsync -r . subfolder/

相关内容