Frage

Ich habe diesen Befehl, dass ich jeden Tag über cron:

find /home/get/public_html/videos -daystart -maxdepth 0 
-mtime +1 -type f -name "*.flv" |xargs rm -f

Das Problem ist, dass es nicht die .flv Dateien in einem Verzeichnis nicht löschen, die 1 oder mehr Tage alt.

Wie kann ich den oben genannten Befehl korrekt?

EDIT: Paul - der Befehl "ls -l / home / get / public_html / Videos" Ergebnisse in 2000+-Dateien, aber hier ist 2 von ihnen, die gelöscht werden sollen:

-rw-r--r--  1 get get   3501188 Jan  4 15:24 f486cf0a2b6bb40e4c50c991785084131231104229.flv
-rw-r--r--  1 get get  10657314 Jan  4 17:51 f5f1490ddaa11a663686f9d06fb37d981231112941.flv
War es hilfreich?

Lösung

Es ist besser zu nutzen -print0 auf Entdeckung und -0 in xargs, falls eine Datei hat einen ungewöhnlichen Namen.

Außerdem mögen Sie -maxdepth 1 bis tatsächlich etwas in dem angegebenen Verzeichnis verwenden.

-maxdepth 0 bedeutet es nur in den in der Befehlszeile angegebenen Verzeichnisse findet, wird es nicht die Inhalte dieser Verzeichnisse überprüfen.

Andere Tipps

Sie meinen, wenn Sie ein Verzeichnis /home/get/public_html/videos/foo hat es die Dateien nicht in sie löschen? Das wäre, weil Sie das -maxdepth 0 Argument gesetzt haben, die find von Abstieg in Unterverzeichnisse verhindert.

-maxdepth 1
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top