GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je faire en sorte que find exclut le dossier dans lequel il recherche?

Le plus simple serait d'ajouter simplement -mindepth 1 , qui ignorera la première hiérarchie de profondeur et laissera donc de côté votre répertoire parent.

De plus, vous n'avez pas besoin d'un -exec supplémentaire appeler le rm , vous pouvez simplement delete les dossiers directement s'ils sont vides.

find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -delete

S'ils ne sont pas vides :

find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;

Si vous êtes paresseux, vous pouvez également développer un caractère générique. Depuis * n'inclut pas le répertoire courant par défaut (sauf si dotglob est défini), vous pouvez également faire :

find /var/www/html/content/processing/* -type d -mtime +1 -delete

Cependant, cela n'inclurait pas non plus les dossiers cachés, encore une fois en raison du dotglob option.


Le problème est que find renvoie le répertoire courant (.) avec les autres répertoires, il supprime donc le dossier de traitement ainsi que les sous-répertoires. Un moyen rapide de contourner ce problème serait d'ajouter l'option

-not -name .

qui empêche find de sortir le répertoire courant, et à son tour l'empêche d'être supprimé.

Cela fonctionnerait si vous exécutiez la commande dans le répertoire de traitement, afin de tenir compte du fait que vous utilisez un chemin absolu :

-not -name /var/www/html/content/processing

Et la commande entière serait :

find /var/www/html/content/processing -type d -mtime +1 -not -name /var/www/html/content/processing -exec rm -rf {} \;

Linux
  1. Comment ouvrir et fermer des répertoires dans le terminal Linux

  2. Exclure le répertoire dans Rechercher ?

  3. Comment installer R 3.3.1 dans le propre répertoire ?

  4. Rechercher le répertoire d'exclusion ?

  5. Comment rendre un répertoire partagé accessible par Sftp ?

Comment compter les fichiers dans le répertoire sous Linux

Comment trouver la taille d'un répertoire sous Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment exclure un répertoire lors de la recherche de fichiers sous Linux

Comment trouver la taille totale d'un répertoire sous Linux

La commande Linux find Directory :Explication