Ich habe alle meine Musik in einem Ordner /media/kalenpw/MyBook/Music/ABunchOfOtherFoldersWithFilesInside
. Ich möchte alle MP3s kopieren, /media/kalenpw/HDD/Music
also habe ich verwendet:
cp -R /media/kalenpw/MyBook/Music/*.mp3 /media/kalenpw/HDD/Music
Dies kopierte jedoch nur die MP3s im Root-Musikordner und öffnete keines der Künstler-Unterverzeichnisse und kopierte diese Dateien.
Ich hatte den Eindruck -R
, alle Dateien rekursiv zu kopieren. Wie kann ich dieses Ziel erreichen?
-iname
statt für den-name
Fall, dass irgendwelche Dateien enden.MP3
.Sie haben ausdrücklich erwähnt, dass die zu kopierenden
*.mp3
Dateien / Verzeichnisse mit einem beliebigen Datei- / Verzeichnisnamen enden sollen, der auf endet.mp3
.So eine Datei mit der Endung
.mp3
in/media/kalenpw/MyBook/Music/
Verzeichnis und in ähnlicher Weise ein beliebiges Verzeichnis der Endung.mp3
in/media/kalenpw/MyBook/Music/
wird rekursiv kopiert werden. Wenn es keine solche übereinstimmende Datei / kein solches Verzeichnis gibt, wird nichts kopiert.So kopieren Sie nun alle
.mp3
Dateien von/media/kalenpw/MyBook/Music/
recursivley in das Verzeichnis/media/kalenpw/HDD/Music/
:Verwenden von
bash
:Verwenden von
find
:quelle
Sie können auch cpr verwenden :
Beachten Sie, dass ohne
-p
cpr vollständige Verzeichnispfade für kopierte Dateinamen beibehalten werden.-r
kann verwendet werden (anstelle von-p
), um den Pfad unter '/media.../Music/' beizubehalten.Es
cpr
wird auch darauf geachtet, dass keine Datei überschrieben wird, indem eine Nummer ab '0001' an jeden wiederholten kopierten Dateinamen angehängt wird.quelle
Angenommen, Sie haben eine Reihe von
.docx
,.mp3
,.txt
und.xlsx
Dateien in diesem Verzeichnis - Struktur gespeichert:... 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:
... und führen Sie dann diesen Befehl aus:
Falls Sie es möchten die Quelle des Verzeichnisbaum im Ziel zu erhalten, führen Sie diesen Befehl statt (nach dem Laufen
cd /files
):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
).quelle