我可以使用单个命令将多个目录复制到一个目录中吗?

我可以使用单个命令将多个目录复制到一个目录中吗?

我已经使用 photorec 从硬盘恢复数据,现在有很多目录 /home/ray/recup_dir.1,占用/home/ray/recup-dir.598了我的主目录中的宝贵空间。

我想将它们复制到另一个目录中/media/ray/"Seagate Expansion Drive"/RecupsA

如何使用一个命令来完成此操作?

答案1

我想到的第一个解决方案是rsync。排除一切。包括与模式匹配的目录。我承认使用 rsync 将信息复制到同一主机感觉很奇怪。通常它用于复制到远程计算机。但是我认为没有理由不能复制到本地主机。

rsync -ravz --include '/home/ray/recup_dir.*' --exclude '*' user@localhost

ravz的解释:

-r recursive copy
-v verbose
-a : archive mode. Preserves symbolic links, file permissions, user & group ownerships,  timestamps
-z : compress file data


第二种选择是作弊并输入mc。这将开始午夜指挥官,允许您选择多个目录,然后复制它们。


第三个选项:查找。

find /home/ray/recup_dir.\*  -exec cp {} /media/ray/"Seagate Expansion Drive"/RecupsA \;


第四种选择:使用 shell。转到 /home/ray/ 然后

for a in recup* ; do cp -r $a /media/ray/"Seagate Expansion Drive"/RecupsA; done

答案2

使用cp带有r递归选项的标准:

cp -r /home/ray/recup_dir.{1..598} "/media/ray/Seagate Expansion Drive/RecupsA"

但我有一种感觉,在这种情况下,你宁愿移动它们:

mv /home/ray/recup_dir.{1..598} "/media/ray/Seagate Expansion Drive/RecupsA"

这两个命令仅将最后一个参数视为目的地,以及所有之前的来源(文件或目录)。

相关内容