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?

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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.