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


17

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

Answers:


26

如何将文件放在所有子文件夹(可能还有它们的子文件夹)的当前工作目录中,具体取决于您要执行的操作

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

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线程的信息


13

您可以使用这种单线:

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

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

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


2
这会递归地处理所有子目录,而不仅仅是直接子目录
Anake

2
@ Anake更新了我的答案
ortang

这个答案很好!
王金华
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.