Angenommen, Sie haben eine Reihe von .docx, .mp3, .txtund .xlsxDateien 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 .mp3Dateien , /home/me/music/aber Sie nicht wollen solchen Verzeichnisbaum in dem Ziel zu erhalten (dh Sie alle gefundenen wollen .mp3Dateien 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, .mP3und .Mp3). Verwenden Sie -nameanstelle von, -inamewenn bei der Suche zwischen Groß- und Kleinschreibung unterschieden werden soll (z. B. entspricht die Verwendung -namefür die .mp3Zeichenfolge den Dateien, die mit enden, .mp3aber nicht denen, die mit enden .MP3, .mP3noch .Mp3).
-inamestatt für den-nameFall, dass irgendwelche Dateien enden.MP3.