2 votes

erreur de la commande find no such file or directory

J'utilise cette commande pour supprimer les fichiers et dossiers de plus de 150 jours.

 find /media/Server/VPS/dailySQL/* -mtime +140 -exec rm -rf {} \;

Le problème est que je reçois l'erreur comme ci-dessous

find: `/media/May-08-Sat-2010': No such file or directory
find: `/media/May-11-Tue-2010': No such file or directory
find: `/media/May-12-Wed-2010': No such file or directory
find: `/media/May-13-Thu-2010': No such file or directory
find: `/media/May-14-Fri-2010': No such file or directory

pourquoi est-ce que

8voto

David Points 344

Parce que vous supprimez les répertoires, puis vous essayez d'y descendre. Ajouter -prune jusqu'à la fin.

5voto

Samat Jain Points 165

Essayez ça :

$ find /media/Server/VPS/dailySQL/ -mtime +140 | xargs rm -rf

3voto

jeffreypriebe Points 1070

Le problème avec certaines des suggestions proposées est que si l'un des fichiers/répertoires contient des caractères spéciaux, il ne sera pas supprimé. Faire un -exec dans les lins des soumissionnaires prend beaucoup de temps et une meilleure efficacité est obtenue en passant les noms à xargs et en invoquant le rm/rmdir le moins de fois possible.

 touch /media/Server/VPS/dailySQL/.saver     
 find /media/Server/VPS/dailySQL -type f -mtime +140 -print0 | xargs -0 rm -f >/dev/null 2>&1
 find /media/Server/VPS/dailySQL -depth -type d -print0 | xargs -0 rmdir >/dev/null 2>&1

La deuxième ligne supprime tous les anciens fichiers. Je mets un fichier dans le répertoire de premier niveau pour le sauver de la destruction sur la première ligne et finalement vous parcourez les répertoires en profondeur d'abord et essayez simplement de rmdir. S'il y a encore quelque chose de présent, le rmdir échouera. La méthode "depth-first" est nécessaire pour supprimer les sous-répertoires vides avant de tenter de supprimer un répertoire donné.

Enfin, remarquez -print0 et le paramètre -0 sur xargs. Cela vous permet de traiter correctement les fichiers qui contiennent des espaces ou d'autres métacaractères. Cette fonctionnalité est disponible sur la plupart des systèmes Linux auxquels j'ai été exposé dernièrement.

C'est le type de script que j'ai utilisé pour supprimer les éléments de /tmp et /var/tmp.

Profitez de

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X