Скопіюйте вміст / файл у весь підкаталог у каталог за допомогою терміналу


17

Я хочу скопіювати файл у всі папки в папці. Як я можу це зробити за допомогою командного рядка?

Відповіді:


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

Інформація з цієї теми Linux


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

Ця відповідь відмінна!
Jinhua Wang
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.