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


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

Информация из этой 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

Этот ответ отлично!
Цзиньхуа Ван
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.