Copie el contenido / archivo a todo el subdirectorio en un directorio usando terminal

17

Quiero copiar un archivo a todas las subcarpetas en una carpeta. ¿Cómo puedo hacer esto con la línea de comando?

22lk94k943 solamente
fuente

Respuestas:

26

Cómo colocar un archivo en el directorio de trabajo actual en todas las subcarpetas (y tal vez sus subcarpetas, según lo que desee hacer)

Esto colocará el archivo en todas las subcarpetas, pero no en sus subcarpetas:

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

Esto colocará el archivo water.txt(cambie todas las instancias de water.txt al nombre de archivo que desea copiar) en todas las subcarpetas y sus subcarpetas

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

Información de este hilo de linuxquestions

Otro usuario
fuente
13

Podrías usar esa frase:

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

limitar la profundidad a 1 -> solo los directorios inmediatos

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

Ortang
fuente
2
Esto hace todos los subdirectorios de forma recursiva, no solo los subdirectorios inmediatos
Anake
2
@Anake actualizó mi respuesta
ortang
¡Esta respuesta es excelente!
Jinhua Wang