【发布时间】:2021-12-23 12:41:33
【问题描述】:
我不允许在我正在处理的集群上使用 rsync,所以我需要使用 cp。我想复制一个大目录,包括所有文件和子文件夹等,但没有任何名为“outdir”的文件夹。
我试过cp -r -v ./!(outdir) ../target-directory/
但它仍会复制名称为 outdir 的更深目录中的所有文件夹和内容。它只包含最高目录中的 outdir 文件夹。
我也尝试过cp -r ./*/!(outdir) ../target-directory/,但是那个人将所有文件复制到文件夹中,而没有保留任何层次结构或文件夹等。
我也尝试了某些查找命令,但没有成功,但也许我只是在做一些愚蠢的事情。我是 bash 的初学者,所以如果你能解释你的答案以及标志等的作用,那真的很有帮助,我现在一直在尝试,我认为不应该那么难做。
【问题讨论】:
-
你提前执行
shopt -s extglob了吗? -
您的
outdir目录可以出现在层次结构中的任何级别吗?如果是这样,那么您应该安装自己的 rsync 副本,IMO。 -
是的,它们可以出现在各个级别,是的,我做了 shopt -s extglob
-
关于如何安装我自己的副本的任何链接/建议?
-
什么操作系统会运行
rsync命令?