我是第一次发海报,也是编码新手:
我需要将文件复制ING_30.tif
到数百个文件夹中,因此我希望使用终端命令来快速完成此操作。
- 两者
ING_30.tif
以及我需要将其复制到的文件夹都位于同一父文件夹中ING/
。 - 我不想复制
ING_30.tif
到 中的每个文件夹,只想复制到以(例如)开头ING/
的文件夹。ING/
AST
AST_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_
文件夹中,而不会删除文件夹中的任何其他文件。