Ich habe ein Verzeichnis mit einer großen Anzahl von PDF-Dateien, von denen sich einige in Unterverzeichnissen befinden (die sich über mehrere Ebenen erstrecken können). Ich möchte alle passenden Dateien *.pdf
in einen einzigen Ausgabeordner namens verschieben papers
.
Wie kann ich das machen?
linux
command-line
blz
quelle
quelle
a/x.pdf
undb/x.pdf
?Antworten:
Wenn Sie
bash
eine neuere Version verwenden, können Sie von der folgendenglobstar
Option profitieren :quelle
Hier ist ein Test, den ich gemacht habe
Beachten Sie die Datei "aaa bbb.pdf".
quelle
"{}"
, um mit Dateinamen mit Leerzeichen umzugehen?(ähnlich einer anderen Antwort, aber ich bevorzuge pipe / xargs / mv ... intuitiver für mich)
Zu Ihrer Information, ich habe das obige einzeilige Skript erfolgreich für mehrere Verzeichnisse und mehrere PDF-Dateien ausgeführt.
quelle
-print0
Ihrem Fund und-0
xargs Argumente hinzufügen .Für die Windows-Befehlszeile (cmd.exe) können Sie Folgendes verwenden:
quelle
Wenn Sie nur ein einziges Verzeichnis durchsuchen, können Sie Folgendes tun:
wo
<destination>
steht für ein Verzeichnis.mv
erstellt nicht automatisch ein Verzeichnis für Sie.quelle