staging.inyokaproject.org

Dateien mit Leerzeichen mittels Liste löschen

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 2726

Hallo,

mit fslint habe ich 2 Ordner auf Duplikate hin untersucht. Leider (in meinem Fall) werden dabei aber auch Duplikate innerhalb der Ordner ausgegeben, die ich aber nicht löschen will. Wie ich es sehe, hat fslint keine Option, die auszuschließen.

Also habe ich mir die Ergebnisse von fslint in eine Datei ausgeben lassen und daraus ein Extrakt erstellt, welches nur die zu löschenden Dateien enthält:

1
cat fslint.log | grep kaputte_Namen/ > kaputte_Namen.log

Dann habe ich mittels dieser Liste versucht die Dateien zu löschen:

1
rm < `cat kaputte_Namen.log`

Dabei kam es zu Fehlern, da manche dieser Dateinamen Leerzeichen enthielten. Auch folgendes geht nicht:

1
cat kaputte_Namen.log | rm -

Jetzt versuche ich die Leerzeichen zu quoten und bin am verzweifeln, dafür eine Lösung zu finden. Kann mir jemand einen Tipp geben?

EDIT: Die "kaputten Namen" stammen übrigens von einem chkdsk per Windoof. Ich will also alle diese Dateien mit denen im Backup vergleichen, sie löschen, falls im Backup vorhanden und mir dann den übrig geblienenen Rest genauer anschauen.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

Test:

1
cat kaputte_Namen.log | while read f;  do ls -l "$f" ; done

Bei der Auswertung von f muss es maskiert werden. Das funktioniert nicht mehr, wenn Du auch Zeilenumbrüche in Dateinamen hast (ja, das ist erlaubt, aber es zu nutzen ist meist dumm).

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 2726

user_unknown schrieb:

Test:

1
cat kaputte_Namen.log | while read f;  do ls -l "$f" ; done

Bei der Auswertung von f muss es maskiert werden. Das funktioniert nicht mehr, wenn Du auch Zeilenumbrüche in Dateinamen hast (ja, das ist erlaubt, aber es zu nutzen ist meist dumm).

Das ging ja schnell, danke! Leider bekomme ich haufenweise folgende Meldungen, obwohl die Dateien existieren. Was ist da noch faul?

1
ls: Zugriff auf Datei '"/pfad/Name mit Leerzeichen.jpg"' nicht möglich: Datei oder Verzeichnis nicht gefunden.

Ich nehme an, dass ich bei Erfolg dann ls -l durch rm ersetzen soll.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 2726

UlfZibis schrieb:

Leider bekomme ich haufenweise folgende Meldungen, obwohl die Dateien existieren. Was ist da noch faul?

1
ls: Zugriff auf Datei '"/pfad/Name mit Leerzeichen.jpg"' nicht möglich: Datei oder Verzeichnis nicht gefunden.

Ich nehme an, dass ich bei Erfolg dann ls -l durch rm ersetzen soll.

Hab' den Fehler inzwischen gefunden. Ich hatte zwischenzeitlich in der Listendatei alle Pfade mir " dekoriert um damit zu probieren. Das ging natürlich auch nicht. Nun sind sie wieder weg, und mit Deinem Befehl hatte ich Erfolg ☺

Antworten |