Скопируйте содержимое / файл во все подкаталоги в каталоге, используя терминал

17

Я хочу скопировать файл во все подпапки в папке. Как я могу сделать это с помощью командной строки?

Только 22lk94k943
источник

Ответы:

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> {} \;

ortang
источник
2
Это делает все подкаталоги рекурсивно, а не только непосредственные подкаталоги
Anake
2
@Anake обновил мой ответ
ortang
Этот ответ отлично!
Цзиньхуа Ван