GNU/Linux >> Tutoriels Linux >  >> Linux

Exclure une liste de répertoires de la commande Unix Find ?

J'ai besoin de construire une liste de fichiers présents dans un répertoire mais aussi de passer dans un fichier contenant une liste de répertoires à exclure.

J'ai vu la suggestion ci-dessous, mais je n'ai pas eu de chance avec l'indicateur de type :

find $dir_name $(printf "! -name %s " $(cat $exclude_file))

Existe-t-il un moyen de le faire ou dois-je créer la liste entière, puis la parcourir en supprimant celles qui correspondent partiellement à celles du répertoire d'exclusion.

Réponse acceptée :

Étant donné que votre exclude_file contient des chemins, pas des noms, vous devez utiliser -path pour correspondre à ses entrées. Pour exclure les sous-répertoires des répertoires correspondants, vous devez également -prune eux. Cela devrait fonctionner :

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print

Si vous ne souhaitez voir que les fichiers, vous pouvez n'imprimer que les fichiers :

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print

Linux
  1. Comment exclure une commande de la liste de l'historique, mais la conserver dans l'historique "en direct" ?

  2. Trouver N mots les plus fréquents dans un fichier avec une liste de mots vides à partir de la ligne de commande ?

  3. Trouver la version de WordPress à partir de la ligne de commande

  4. Comment exclure un répertoire dans find . commande

  5. Utilisez la commande find mais excluez les fichiers dans deux répertoires

Rechercher la commande sous Linux (Rechercher des fichiers et des répertoires)

Commande Ls sous Linux (liste des fichiers et des répertoires)

Copier un fichier dans plusieurs répertoires à partir de la ligne de commande sous Linux

Comment lister uniquement les répertoires sous Linux

Rechercher la commande sous Linux/UNIX

trouver la commande du PID