Angenommen, Sie haben eine Reihe von .docx
, .mp3
, .txt
und .xlsx
Dateien in diesem Verzeichnis - Struktur gespeichert:
/files/
/files/dir1/
/files/dir1/dir11/
/files/dir1/dir12/
/files/dir1/dir13/
/files/dir2/
/files/dir3/
/files/dir3/dir31/
/files/dir3/dir32/
/files/dir4/
/files/dir5/
/files/dir51/
/files/dir52/
/files/dir53/
/files/dir54/
... und Sie wollen in alle solchen Verzeichnisse , um rekursiv alle gefundenen zu kopieren .mp3
Dateien , /home/me/music/
aber Sie nicht wollen solchen Verzeichnisbaum in dem Ziel zu erhalten (dh Sie alle gefundenen wollen .mp3
Dateien kopiert werden , /home/me/music/
anstatt an den jeweiligen Verzeichnisse von kopiert wie /home/me/music/dir1/
, /home/me/music/dir1/dir11/
et cetera).
Führen Sie in diesem Fall zuerst am Shell-Terminal (bash) diesen Befehl aus, um auf das Stammverzeichnis Ihrer Dateisuche zuzugreifen:
cd /files
... und führen Sie dann diesen Befehl aus:
for i in `find . -iname '*.mp3'`; do cp $i /home/me/music/; done
Falls Sie es möchten die Quelle des Verzeichnisbaum im Ziel zu erhalten, führen Sie diesen Befehl statt (nach dem Laufen cd /files
):
find . -iname '*.mp3' | cpio -pdm /home/me/music/
Auf den obigen Befehlen ist die Suche Groß- und Kleinschreibung (dh Streichhölzer .mp3
, .MP3
, .mP3
und .Mp3
). Verwenden Sie -name
anstelle von, -iname
wenn bei der Suche zwischen Groß- und Kleinschreibung unterschieden werden soll (z. B. entspricht die Verwendung -name
für die .mp3
Zeichenfolge den Dateien, die mit enden, .mp3
aber nicht denen, die mit enden .MP3
, .mP3
noch .Mp3
).
-iname
statt für den-name
Fall, dass irgendwelche Dateien enden.MP3
.