如何将文件复制到* Co *形式的多个目录?还是* 52?
显然,只需输入
即可 cp fileA *Co*
无效。
我的另一个问题是,如果一个目录已经包含fileA,我不希望它被覆盖。也就是说,如果目录* Co *包含fileA,请不要复制。是否有一个单行解决方案,因为我认为用if-else编写脚本是一种过度杀伤。
谢谢!
答案 0 :(得分:0)
如果您的cp
版本支持-n
,则可以执行以下操作:
find . -name '*Co*' -exec cp -n fileA {} \;
如果不是:
find . -name '*Co*' -exec sh -c 'test -f $0/fileA || cp fileA $0' {} \;
请注意,这些将以递归方式下降:如果您不想要,则可以限制查找范围。要找到 Co 或* 52,您可以执行以下操作:
find . \( -name '*Co*' -o -name '*52' \) -exec ...