Joopi
[Shell] find - Dateien aus Unterordner kopieren - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [Shell] find - Dateien aus Unterordner kopieren (/showthread.php?tid=18)



find - Dateien aus Unterordner kopieren - Joopi - 06-01-2023

Oftmals habe ich das Problem, dass einzelne oder mehrere Dateien über eine größere Anzahl von Unterordnern verteilt sind. Um diese manuell in einem Ordner zusammenzuführen, ist sehr viel Zeit aufzuwenden.

Es gibt aber einen geniale Befehl auf der Konsole, der alle Dateien aus den Unterordnern (auch Unterunterordnern) in einen benannten Ordner kopiert oder verschiebt.

So wie der Befehl unten aufgeführt ist, ist er in dem Ordner auszuführen, in dem auch der Beispielordner z_temp liegt. Sofern der Befehl in Scriptform ausgeführt werden soll, muss natürlich die Zielordnerangabe entsprechend angepasst und vorgenommen werden.

Der Befehl kann zum Kopieren und zum Verschieben eingesetzt werden.

kopieren:
Code:
find . -type f -print0 | xargs -0 -I%%% cp %%% z_temp

veschieben:
Code:
find . -type f -print0 | xargs -0 -I%%% mv %%% z_temp

Mir hat der Befehl sehr viel Zeit erspart, weil ich ganz früher sehr viel mit Ordnern gearbeitet habe. Allerdings muss man bedenken, dass Dateien, die den gleichen haben haben, einfach der letzten Datei überschrieben werden. Das könnte zu Datenverlust führen.  Also vorher kontrollieren, ob es gleichnamige Dateien gibt, die aber unterschiedlichen Inhalte haben, oder in einem Shellscript eine Fehlerbehandlung einbauen.