[bash] Dateien nach vorgegebenem Muster löschen

RonZ

Lt. Junior Grade
Registriert
Aug. 2005
Beiträge
260
Hallo Geeks,

es passiert ja hoffentlich recht selten, dass einem die richtigen Suchbegriffe für die Suchmaschinen fehlen. Bei mir ist es momentan so, deswegen:

Ich habe ein Archiv entpackt, welches Dateien samt Ordnerstruktur enthält. Sagen wir, aus dem Archiv kommt der Ordner /usr mit vielen Unterordnern und darin vielen Dateien heraus.

Diesen hat man nun mittels

Code:
cp -r usr/* /usr

in das System eingepflegt.

Nun sollen alle Dateien (und evtl. auch nicht mehr benötigten Unterordner) wieder aus dem System gelöscht werden. Man hat das Archiv noch. Wie geht man am geschicktesten vor?

Vielen Dank schon mal!
 
Zuerst würde ich eine Liste aller Dateien und Ordner aus dem Archiv zusammenstellen. Das könnte man so machen "tar tzf bla.tar.gz", wenn es ein "tar.gz" ist. Dann würde ich das kontrollieren und ein Backup machen! Danach mit einem "rm" die Dateien löschen.
 
Das geht bestimmt auch viel einfacher aber manchmal fehlen mir die richtigen befehle ;)

1. Archiv entpacken
2. CD in Archive ordner
3. Dateiliste erstellen: find . -type f > file.txt
4. Ordnerliste erstellen: find . -type d > dir.txt
5. die beiden dateien mit einem texteditor deiner wahl öffnen, pfade anpassen und ein rm vorstellen.

und wie bereits erwähnt zuvor ein backup von deinem /usr ordner erstellen.
 
Hi,

Mit dem Risiko dass man Files löscht die überschrieben wurden:

Code:
for f in $(tar -tvf file.tar);do;rm $f;done

Das command löst im endeffekt pro file im tar-file einen einzelnen rm <file> aufruf aus. ich würde es nur vorher mit "echo" statt "rm" probieren damit du siehst ob nicht nur die filenames sonern auch ein Teil des Pfades ausgegeben werden.
 
Wie wäre es wenn wir nach dem Zeitstempel gehen, also "find /usr -type f -mtime +5 -ls" um zu sehen was alles gefunden wird und wenn alles passt "find /usr -type f -mtime +5 -delete" <-- alles was älter als 5 Tage ist wird gelöscht...
 
Dankt euch für das fixe Feedback!

Klasse wär natürlich eine Lösung unabhängig vom Archivtyp. Also wenn das entpackte Ordnerkonstrukt hinreichen würde, wär das schon klasse.

@blablub
Das ist auf jeden Fall ein guter Ansatz. Das funktioniert garantiert. Wobei auch Dateien gelöscht werden, die überschrieben werden. Aber das muss man dann freilich kontrollieren.

Da ist der Ansatz von Humaer schon gar kein schlechter. Beim Kopieren sollte man dem cp dann nur das überschreiben abgewöhnen (-n)...

Danke nochmal!
 
Zurück
Oben