Ich habe eine Liste von Dateien, die ich überprüfen möchte, ob sie in meinem Dateisystem vorhanden sind. Ich dachte daran, dies find
wie folgt zu tun :
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(using zsh
), aber das funktioniert nicht, da find
es zu beenden scheint, 0
ob es die Datei findet oder nicht. Ich glaube , ich es durch eine andere Prüfung bestehen , die zu sehen , ob testet find
jede Ausgabe (roh , aber effektiv wäre das zu ersetzen , produziert > /dev/null
mit |grep ''
) , aber das fühlt sich an wie ein Troll mit einer Ziege (andere Nationalitäten sagen etwas über Vorschlaghämmern und Walnüsse könnte fangen ).
Gibt es eine Möglichkeit find
, mich zu einem nützlichen Exit-Wert zu zwingen ? Oder zumindest, um eine Liste der Dateien zu erhalten, die nicht gefunden wurden? (Ich kann mir vorstellen, dass Letzteres durch eine raffinierte Auswahl logischer Verknüpfungen vielleicht einfacher ist, aber ich scheine immer in Knoten verwickelt zu sein, wenn ich versuche, es herauszufinden.)
Hintergrund / Motivation: Ich habe eine "Master" -Sicherung und möchte überprüfen, ob einige Dateien auf meinem lokalen Computer auf meiner Master-Sicherung vorhanden sind, bevor ich sie lösche (um etwas Speicherplatz zu schaffen). Also machte ich eine Liste der Dateien, ssh
bearbeitete sie auf dem Master-Computer und war dann ratlos, den besten Weg zu finden, um die fehlenden Dateien zu finden.
locate
zeigt nicht den aktuellen Status des Dateisystems an, es kann ein Tag oder sogar eine Woche alt sein. Dies eignet sich als Basis zum Testen von Backups.
locate
.