【问题标题】:How to copy a file to all subdirectories?如何将文件复制到所有子目录?
【发布时间】:2021-07-06 07:09:37
【问题描述】:

如何将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

【问题讨论】:

    标签: linux shell find cp


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多