我有一个目录结构: /apps/amr
。 我想对amr
进行备份(即没有取消引用链接)。现在/ apps目录有一个不同的用户和组所属的(我没有访问权限)。 我以不同的用户和组login。 所以显然在/apps
目录执行:
mkdir amr_backup cp -dR amr amr_backup
不作为权限被拒绝。 所以,我正在尝试在/apps/amr
目录中做同样的事情,因为amr
目录与我login的用户和组相同。 但是执行时:
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
所以请给我一个解决scheme。
我说,保持简单…
mkdir .tmp cp -dR * .tmp/. mv .tmp amr_backup
*
的glob扩展将不包括任何以.
所以隐藏的目录本身不会是源目录。
您可以使用!(amr_backup)
而不是*
通配符从复制命令中排除amr_backup
。
cp -dR !(amr_backup) amr_backup/
文件大小看起来对我好。 amr
大约是amr_backup
两倍,因为它包含amr_backup
。