我有一个目录结构:/apps/amr
。我想原样备份amr
(即没有取消引用链接)。现在/ apps目录有一个与它不同的用户和组(我无法访问它) 。我以其他用户和组身份登录。显然在/apps
目录中执行:
mkdir amr_backup
cp -dR amr amr_backup
不起作用,但拒绝权限。
因此,我试图在/apps/amr
目录中执行相同操作,因为amr
目录具有我登录的相同用户和组。但在执行时:
mkdir amr_backup
cp -dR * amr_backup
显示此错误:
cp: cannot copy a directory, `amr_backup`, into itself, `amr_backup/amr_backup'
这很明显,因为amr_backup目录本身在/apps/amr
内。
而且我也看不到所有内容都得到了适当的备份:
du -sh /apps/amr
8.6G /apps/amr
du -sh /apps/amr/amr_backup
4.3G /apps/amr/amr_backup
请好好给我一个解决方案。
答案 0 :(得分:2)
我说,保持简单......
mkdir .tmp
cp -dR * .tmp/.
mv .tmp amr_backup
*
的glob扩展不会包含任何以.
开头的内容,因此隐藏目录本身不会是源目录。
答案 1 :(得分:0)
您可以使用amr_backup
而不是!(amr_backup)
通配符从复制命令中排除*
。
cp -dR !(amr_backup) amr_backup/
文件大小对我来说没问题。 amr
的大小约为amr_backup
的两倍,因为它包含amr_backup
。