如何将文件复制到所有子目录?

时间:2021-04-10 17:42:37

标签: linux shell find cp

如何将 read-me.jpg 文件粘贴到所有子目录中?这是在所有子目录中创建新文件的命令。

for dir in `find . -type d` ; do echo "mywebsite.com" > $dir/downloadedfrom.txt ; done

但我想将 jpg 文件复制到所有子目录中。

目录列表:

2011
2012
2009
2019
2021
2000/2001/..../2010
...
...

已经尝试过这个命令但是没有输出

for dir in `find . -type d` ; cp read-me.jpg > $dir ; done

2 个答案:

答案 0 :(得分:2)

您尝试将 cp 的输出重定向到 $dir,但我们应该将目标 $dir/read-me.jpg 指定为 cp 的第二个参数

for dir in `find . -type d` ; do cp read-me.jpg $dir/read-me.jpg ; done

答案 1 :(得分:2)

cp> 不能混用。 cp 的语法是 cp source destination,没有重定向。

尽可能使用 find -exec 对每个结果执行命令。它比循环输出更简单且不易出错。

find . -type d -exec cp read-me.jpg {} ';'

使用 -exec 时,{} 是找到的路径的占位符,';' 是表示 -exec 操作结束的必需语法(以防在 find 后面有额外的 -exec 选项)。

相关问题