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?

Nur 22lk94k943
quelle

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

Noch ein Benutzer
quelle
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> {} \;

ortang
quelle
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