Domanda

Ho questo comando che eseguo ogni giorno tramite cron:

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

Il problema è che non elimina i file .flv in una directory vecchia di 1 o più giorni.

Come posso correggere il comando sopra?

EDIT: Paul - il comando " ls -l / home / get / public_html / videos " risulta in oltre 2000 file ma eccone 2 che devono essere eliminati:

-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
È stato utile?

Soluzione

È meglio usare -print0 su find e -0 in xargs nel caso in cui un file abbia un nome insolito.

Inoltre, si desidera utilizzare -maxdepth 1 per trovare effettivamente qualcosa nella directory specificata.

-maxdepth 0 significa che troverà solo nelle directory elencate nella riga di comando, non controllerà il contenuto di quelle directory.

Altri suggerimenti

Intendi, se hai una directory / home / get / public_html / videos / foo non cancella i file in essi contenuti? Ciò sarebbe dovuto al fatto che hai impostato l'argomento -maxdepth 0 , che impedisce a find di scendere nelle sottodirectory.

-maxdepth 1
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top