staging.inyokaproject.org

Liste von Datien suchen (ob vorhanden)

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

rarity

Avatar von rarity

Anmeldungsdatum:
19. Februar 2007

Beiträge: 133

Hallo!

Ich habe eine einige Dateien (ca. 75 Fotos - /home/suchbilder) in einem Verzeichnis. Meine Fotos habe ich ein einem (anderen) Verzeichnis mit vielen Unterverzeichnissen. Nun möchte ich prüfen ob ich die Fotos schon habe (in /home/Fotos) und somit in /home/suchbilder löschen kann oder ob ich sie einsortieren muss.

Mit find -name "2016 10 10 Fotoblabla.jpg" (wobei ich mich hier in /home/Fotos befinde) kann ich die Dateien einzeln suchen. Gibt es eine Möglichkeit das Verzeichnis /home/suchbilder automatisch abarbeiteiten zu lassen?

Hab schon ein bischen mit pipe / grep / einer Liste aus ls > /tmp/liste ... herumprobiert, aber zu keiner Lösung gekommen.

Danke!

Gruß rarity

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Ansatz: Schleife über jede Datei im Ausgangsverzeichnis. Pro Fund nimmst Du den basename (also den letzten Teil ohne Pfad, kann man auch mit einer Shell-Parameter-Expansion ermitteln) und suchst im Zielbaum nach der Datei. Wenn die Datei gefunden wird, führst Du rm auf der ursprünglichen Datei aus und beendest den find sofort mit -quit. Nach dem find schaust Du, ob die Eingabedatei noch da ist und falls ja, verschiebst Du sie ans Ziel (wenn man das automatisch machen kann). Falls Du nicht automatisch verschieben kannst, machst Du einfach gar nichts und bearbeitest die übrig gebliebenen Dateien manuell.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ mkdir a b
$ touch a/existiert a/fehlt b/existiert
$ for f in a/*; do find b -name "${f##*/}" -exec rm -v "$f" \; -quit; [ -e "$f" ] && mv -v "$f" b; done
removed 'a/existiert'
renamed 'a/fehlt' -> 'b/fehlt'
$ find
.
./a
./b
./b/existiert
./b/fehlt
Antworten |