Copie o conteúdo / arquivo para todos os subdiretórios em um diretório usando o terminal

17

Quero copiar um arquivo para todas as subpastas em uma pasta. Como posso fazer isso com a linha de comando?

Apenas 22lk94k943
fonte

Respostas:

26

Como colocar um arquivo no diretório de trabalho atual em todas as subpastas (e talvez nas subpastas, dependendo do que você deseja fazer)

Isso colocará o arquivo em todas as subpastas, mas não nas subpastas:

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

Isso colocará o arquivo water.txt(altere todas as instâncias de water.txt para o nome do arquivo que você deseja copiar) em todas as subpastas e suas subpastas

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

Informações deste tópico do linuxquestions

Ainda outro usuário
fonte
13

Você pode usar essa frase:

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

limite a profundidade a 1 -> apenas os diretórios imediatos

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

ortang
fonte
2
Isso faz todos os subdiretórios de forma recursiva, não apenas os subdiretórios imediatos
Anake
2
@Anake atualizou minha resposta
ortang
Esta resposta é excelente!
Jinhua Wang