2009-01-06 21 views
1

Je cette commande que je cours tous les jours via Cron:Cron Job - Commande pour supprimer tous les fichiers .flv tous les jours

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

Le problème est qu'il ne supprime pas les fichiers flv dans un répertoire qui sont 1 ou plusieurs jours.

Comment puis-je corriger la commande ci-dessus?

EDIT: Paul - la commande "ls -l/home/get/public_html/vidéos" résultats dans les fichiers, mais ici 2000 est de 2 d'entre eux qui devraient être supprimés:

-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 
+0

Que fait-il? Est-ce qu'il supprime les fichiers plus anciens, ne supprime pas les fichiers, donne une erreur ....? –

+0

Il ne supprime rien et il ne renvoie rien car je pense qu'il n'a rien trouvé. Pas d'erreur cependant. – Abs

+0

Pouvez-vous ajouter le résultat de ls -l/home/get/public_html/videos à votre question? –

Répondre

3

Il est préférable d'utiliser -print0 sur find et -0 sur xargs dans le cas où un fichier a un nom inhabituel.

En outre, vous souhaitez utiliser -maxdepth 1 pour trouver quelque chose dans le répertoire spécifié.

-maxdepth 0 signifie qu'il ne trouvera que dans les répertoires listés dans la ligne de commande, il ne vérifiera pas le contenu de ces répertoires.

+0

Correct -maxdepth 1 est ce dont j'ai besoin. – Abs

1

Voulez-vous dire, si vous avez un répertoire /home/get/public_html/videos/foo il ne supprime pas les fichiers en eux? Ce serait parce que vous avez le jeu d'arguments -maxdepth 0, qui empêche find de descendre dans les sous-répertoires.

+0

Je veux de la commande pour la recherche dans le répertoire "vidéos" et ne pas aller dans les sous-dossiers. Est-ce que cela signifie que je devrais supprimer "-maxdepth 1"? – Abs

+0

Non, dans ce cas -maxdepth 1 est ce que vous voulez. –

1
-maxdepth 1