Probleme mit einer find Konstruktion

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Probleme mit einer find Konstruktion

Beitrag von Erzlord Caron » 09.05.2004 11:37:38

Hi,
ich versuche mit

Code: Alles auswählen

find /home/backupop -maxdepth 1 -mmin +10080 -name sql*.tar.gz -exec rm {}\; -size +100k
Backups zu löschen, die älter als eine Woche sind.
Kriege aber den Fehler "Missing argument to "-exec". Wenn ich -exec weglasse, kommen die korrekten Dateien.

Benutzeravatar
Six
Beiträge: 8066
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 09.05.2004 13:16:46

Da muß ein Freizeichen zwischen den geschweiften Klammern und dem Escape-\ vor dem ;.

Also so:

Code: Alles auswählen

find /home/backupop -maxdepth 1 -mmin +10080 -name sql*.tar.gz -exec rm {} \; -size +100k 
Wenn es dir um die Zeit geht, schau dir mal die Option -atime an.

Chimerer
Beiträge: 514
Registriert: 28.01.2002 16:10:44

Beitrag von Chimerer » 09.05.2004 13:41:43

Außerdem müsen noch die {} escaped werden da sie sonst von der bash interpretiert werden und \; muss ganz ans Ende.

Code: Alles auswählen

find /home/backupop -maxdepth 1 -mmin +10080 -size +100k -name sql*.tar.gz -exec rm \{\} \;

Benutzeravatar
Six
Beiträge: 8066
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 09.05.2004 15:26:34

Chimerer hat geschrieben:Außerdem müsen noch die {} escaped werden da sie sonst von der bash interpretiert werden und \; muss ganz ans Ende.

Code: Alles auswählen

find /home/backupop -maxdepth 1 -mmin +10080 -size +100k -name sql*.tar.gz -exec rm \{\} \;
Das sollte in der bash nicht nötig sein. Sagen wir's so: zumindest bei mir war das noch nie nötig.

Antworten