使用终端将内容/文件复制到目录中的所有子目录

使用终端将内容/文件复制到目录中的所有子目录

我想将文件复制到文件夹中的所有子文件夹中。如何使用命令行执行此操作?

答案1

如何将文件放在当前工作目录的所有子文件夹中(也可能是它们的子文件夹,取决于您要做什么)

这会将文件放入所有子文件夹中,但不放入它们的子文件夹中:

for d in */; do cp water.txt "$d"; done

这会将文件water.txt(将 water.txt 的所有实例更改为要复制的文件名)放入所有子文件夹及其子文件夹中

for i in ./* # iterate over all files in current dir
do
    if [ -d "$i" ] # if it's a directory
    then
        cp water.txt "$i" # copy water.txt into it
    fi
done

信息来自这个 linuxquestions 主题

答案2

您可以使用该单行代码:

find <target-dir> -type d -exec cp <the file> {} \;

限制深度为 1 -> 仅限直接目录

find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;

相关内容