将文件复制到多个文件夹中,但仅限以 AST 启动时

将文件复制到多个文件夹中,但仅限以 AST 启动时

我是第一次发海报,也是编码新手:

我需要将文件复制ING_30.tif到数百个文件夹中,因此我希望使用终端命令来快速完成此操作。

  • 两者ING_30.tif以及我需要将其复制到的文件夹都位于同一父文件夹中ING/
  • 我不想复制ING_30.tif到 中的每个文件夹,只想复制到以(例如)开头ING/的文件夹。ING/ASTAST_1113054
  • 这些AST*文件夹中已经有其他我不想删除的文件。

如有帮助,将不胜感激。我在网上找到了将文件复制到多个文件夹中的帖子,但没有让我指定只想复制到AST*文件夹中的代码。我还看到一些命令复制了文件,但删除了文件夹中已有的文件,这是我需要避免的。谢谢!

答案1

另外一个选择:

for d in AST*/; do cp ING_30.tif "$d"; done

/这将循环遍历与 glob 模式匹配的所有目录(由尾随强制执行)AST*并将文件复制到那里。

xargs如果您的目录名称可能包含空格或其他有趣的字符,这比使用更安全(请参阅答案这个问题以获得更多见解),除非您有接受该选项的 GNU 版本-0,并且另外还有一种方法将目录名称作为 NULL 结尾的字符串提供给xargs.

答案2

找到了解决办法:

echo AST* | xargs -n 1 cp ING_30.tif

这会将我的.tif文件复制到所有AST_文件夹中,而不会删除文件夹中的任何其他文件。

相关内容