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

13

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

    
por 22lk94k943 only 27.05.2013 / 19:14

2 respostas

18

Como colocar um arquivo no diretório de trabalho atual em todas as subpastas (e talvez em suas 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 de este encadeamento de linuxquestions

    
por Yet Another User 27.05.2013 / 19:59
7

Você poderia usar esse verso:

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

limite de profundidade para 1 - > apenas os diretórios imediatos

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

    
por ortang 27.05.2013 / 20:33