Kopieren Sie den Inhalt / die Datei mit dem Terminal in alle Unterverzeichnisse in einem Verzeichnis


17

Ich möchte eine Datei in alle Unterordner eines Ordners kopieren. Wie kann ich das mit der Kommandozeile machen?

Antworten:


26

So legen Sie eine Datei in allen Unterordnern im aktuellen Arbeitsverzeichnis ab (und möglicherweise in deren Unterordnern, je nachdem, was Sie tun möchten)

Dadurch wird die Datei in alle Unterordner verschoben, jedoch nicht in ihre Unterordner:

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

Dadurch wird die Datei water.txt(ändern Sie alle Instanzen von water.txt in den zu kopierenden Dateinamen) in allen Unterordnern und deren Unterordnern abgelegt

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 von diesem linuxquestions Thread


13

Sie könnten diesen Einzeiler verwenden:

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

begrenzen Sie die Tiefe auf 1 -> nur die unmittelbaren Verzeichnisse

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


2
Dies macht alle Unterverzeichnisse rekursiv, nicht nur die unmittelbaren Unterverzeichnisse
Anake

2
@Anake hat meine Antwort aktualisiert
ortang

Diese Antwort ist hervorragend!
Jinhua Wang
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.