将子目录中的文件复制到只有 1 个文件扩展名的临时文件夹

布鲁塞普林

我有这样的子目录:

dir1/
 1a.txt
 1a.out
 1b.txt
dir2/
 2a.txt
 2b.txt
 2b.out

我想复制该子目录中仅存在一种文件类型的文件。即在这种情况下,我想复制1b.txt复制2a.txt到 tmp 文件夹。

我可以保证.txt每个文件都会出现a ,但有时 a.out不会出现。基本上我只想找到那些带有 a.txt但它们的.out等效文件不存在的文件。

保罗·霍奇斯

Aserre 提到的双循环的简单版本:

for d in dir?
do for f in $d/*.txt
   do [[ -e ${f%.txt}.out ]] && continue || cp "$f" tmp/
   done
done

这仅复制 *.txt,因此如果您还需要没有匹配的 *.txt 的 *.out 文件,则必须单独检查或稍微复杂化条件,但它应该为您提供一些可以使用的东西。

请参阅参数替换操作字符串的规则以获取解释和更多玩具。

请注意,这不会处理嵌入在文件名中的特殊字符或空格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章