Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von ottonormal » 21.03.2019 14:28:52

Hallo,

ich suche einen Befehl, mit dem ich alle Dateien eines Ordners löschen kann, mit Ausnahme der letzten (neuesten) Datei.

Dann würde ich diesen Befehl gerne in Bleachbit unter "Benutzerdefiniert" einbauen. Das geht da aber anscheinend nicht, da lassen sich nur einzelne Dateien oder Ordner komplett löschen/leeren.

Was gäbe es dafür sonst an Möglichkeiten?

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von Meillo » 21.03.2019 14:41:03

Code: Alles auswählen

ls -t "$ordner" | sed 1d | xargs rm
(Funktioniert moeglicherweise nicht mit Dateinamen, die``komische Zeichen'' enthalten.)
Use ed once in a while!

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von uname » 21.03.2019 14:49:54

ottonormal hat geschrieben:mit Ausnahme der letzten (neuesten) Datei.
Was ist denn die letzte (neuste) Datei? Zuletzt angelegt? Zueletzt geändert?

http://linux-club.de/wiki/opensuse/Zeit ... on_Dateien

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von ottonormal » 21.03.2019 18:39:24

@Meillo
Danke für den Befehl
Bisher funktioniert es nur wenn ich ein Terminal in dem entsprechenden Ordner öffne und dann:

Code: Alles auswählen

ls -t | sed 1d | xargs rm
eingebe.
Alles andere funktioniert bei mir nicht. Z. B.:

Code: Alles auswählen

mnt/Daten-1/Backups/Ordner/ ls -t | sed 1d | xargs rm
ergibt:

Code: Alles auswählen

bash: mnt/Daten-1/Backups/Ordner/: Datei oder Verzeichnis nicht gefunden
rm: fehlender Operand
„rm --help“ liefert weitere Informationen.
Was mache ich falsch?

@uname
Es handelt sich um die zuletzt angelegte Datei, die nicht gelöscht werden soll. Oder auch die neueste, das kommt ja aufs gleiche heraus

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von heisenberg » 21.03.2019 19:21:20

Probiers mal so:

Code: Alles auswählen

ls -t /mnt/Daten-1/Backups/Ordner/  | sed 1d | xargs rm
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von ottonormal » 21.03.2019 19:45:16

heisenberg hat geschrieben: ↑ zum Beitrag ↑
21.03.2019 19:21:20
Probiers mal so:

Code: Alles auswählen

ls -t /mnt/Daten-1/Backups/Ordner/  | sed 1d | xargs rm
Danke, hab's probiert.
Aber weder:

Code: Alles auswählen

ls -t /mnt/Daten-1/Backups/Ordner/  | sed 1d | xargs rm
noch:

Code: Alles auswählen

ls -t /mnt/Daten-1/Backups/Ordner  | sed 1d | xargs rm
funktioniert.
Das ergibt nur:

Code: Alles auswählen

rm: das Entfernen von '20190321_193301.tar' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
rm: das Entfernen von '20190321_193001.tar' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
rm: das Entfernen von '20190321_192701.tar' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
rm: das Entfernen von '20190321_192401.tar' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
Das ist doch merkwürdig. Es werden doch alle Dateien angezeigt???

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von heisenberg » 21.03.2019 20:04:56

Es wird nur der Dateiname und nicht auch der volle Pfadname angezeigt.

Na dann halt doch so:

Code: Alles auswählen

cd /mnt/Daten-1/Backups/Ordner
ls -t | sed 1d | xargs -r rm
Zuletzt geändert von heisenberg am 21.03.2019 20:14:46, insgesamt 1-mal geändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Huo
Beiträge: 614
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von Huo » 21.03.2019 20:09:53

Weil das aktuelle Verzeichnis nicht das durchsuchte Verzeichnis ist, fehlen rm die vollen Pfade der zu löschenden Dateien. Die bekommst Du mit der ls-Option -d. Versuche:

Code: Alles auswählen

 ls -td /mnt/Daten-1/Backups/Ordner/*  | sed 1d | xargs rm

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von Meillo » 21.03.2019 20:25:04

Leute, ihr seid meine Rettung! :THX:
Use ed once in a while!

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von ottonormal » 21.03.2019 20:32:27

Huo hat geschrieben: ↑ zum Beitrag ↑
21.03.2019 20:09:53
Versuche:

Code: Alles auswählen

 ls -td /mnt/Daten-1/Backups/Ordner/*  | sed 1d | xargs rm
Ja, danke, das funktioniert :THX:
Nun zu Punkt 2:
Wie bekomme ich den Befehl in BleachBit?
BleachBit deshalb weil ich das sowieso regelmäßig nutze und es deshalb nicht "vergessen" kann.
Ansonsten müsste ich mir einen separaten Starter erstellen. Das möchte ich eigentlich nicht so gerne.

Michahe
Beiträge: 85
Registriert: 21.03.2016 19:27:53
Lizenz eigener Beiträge: GNU General Public License

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von Michahe » 22.03.2019 08:35:22

Ich wusste nicht einmal, was BleachBit ist. Bei der Recherche habe ich dann bei UbuntuUsers einen Hinweis auf Eigene Reinigungsmodule gefunden und von dort eine Anleitung bei BleachBit.

Wenn Du schon einen Starter für BleachBit hast, warum nennst Du den nicht "Hausputz" und lässt damit zuerst den Löschbefehl ausführen und danach BleachBit starten? Auch dazu eine Anleitung.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Befehl zum Leeren eines Ordners mit Ausnahme der letzten Datei.

Beitrag von ottonormal » 22.03.2019 10:33:11

Danke für den Tipp.
Ich habe mir das angeschaut und als für mich zu kompliziert empfunden.
BleachBit nutze ich schon sehr lange und regelmäßig. Es lassen sich in den Optionen unter "Benutzerdefiniert" sehr einfach Dateien und Ordner, die gelöscht bzw. geleert werden sollen hinzufügen. Nur eben nicht mit solchen "Spezialitäten" wie das Nichtlöschen der letzten/neuesten Datei.
In einer solchen Cleaner-Datei sollte sich wohl einrichten lassen. Das ist mir aber einfach zu kompliziert.

Komisch ist aber auch, wenn ich mir einen Starter (.desktop-Datei) erstelle mit dem Löschbefehl darin funktioniert das nicht. Auch wenn "Im Terminal ausführen" angehakt ist.

In einem Terminal direkt eingegeben funktioniert's aber so wie es soll.

Antworten