web-dev-qa-db-fra.com

Copiez le contenu / fichier dans tous les sous-répertoires d'un répertoire à l'aide de terminal

Je veux copier un fichier dans tous les sous-dossiers d'un dossier. Comment puis-je faire cela avec la ligne de commande?

17
22lk94k943 only

Comment placer un fichier dans le répertoire de travail en cours dans tous les sous-dossiers (et peut-être leurs sous-dossiers, selon ce que vous voulez faire)

Cela placera le fichier dans tous les sous-dossiers, mais pas dans leurs sous-dossiers:

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

Cela placera le fichier water.txt (remplacez toutes les instances de water.txt par le nom de fichier que vous souhaitez copier) dans tous les sous-dossiers et leurs sous-dossiers.

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

Info de ce fil linuxquestions

25
Yet Another User

Vous pouvez utiliser cette ligne:

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

limiter la profondeur à 1 -> uniquement les répertoires immédiats

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

10
ortang