GNU/Linux >> Tutoriels Linux >  >> Linux

Lister tous les répertoires qui n'ont pas de fichier avec un nom de fichier donné à l'intérieur ?

Comment puis-je entrer dans la liste de tous les répertoires qui ne le font pas avoir un fichier avec un nom de fichier donné à l'intérieur ? par exemple. étant donné cet arbre

/
  /a
     README
     file001
     file002
  /b
     README
     file001
  /c
     file003

Je veux lister les répertoires qui ne le font pas avoir un fichier nommé README , dans ce cas ce serait le répertoire /c . Comment ferais-je cela ? Je ne vois aucune syntaxe utilisant par exemple find .

Réponse acceptée :

En supposant une find implémentation comme GNU find qui accepte un {} intégré dans un argument de -exec :

$ find . -type d ! -exec test -e '{}/README' ; -print

ou, sans l'intégration problématique :

$ find . -type d ! -exec sh -c 'test -e "$1"/README' sh {} ; -print

Exemple

Ici, les répertoires 1/1 à 5/5 ont un README, les autres répertoires sont vides.

$ tree 
.
|-- 1
|   `-- 1
|       `-- README
|-- 10
|   `-- 10
|-- 2
|   `-- 2
|       `-- README
|-- 3
|   `-- 3
|       `-- README
|-- 4
|   `-- 4
|       `-- README
|-- 5
|   `-- 5
|       `-- README
|-- 6
|   `-- 6
|-- 7
|   `-- 7
|-- 8
|   `-- 8
`-- 9
    `-- 9

Maintenant, lorsque nous exécutons cette version de notre find commande :

$ find . -type d ! -exec test -e '{}/README' ; -print
.
./10
./10/10
./7
./7/7
./9
./9/9
./6
./6/6
./5
./8
./8/8
./4
./1
./3
./2

Références

  • Exclure les répertoires dans la recherche qui ne contiennent pas de nom de fichier spécifique ?

Linux
  1. Supprimer les fichiers qui n'ont pas été consultés pendant un certain temps sous Linux

  2. Répertorier toutes les adresses e-mail dans un fichier avec grep

  3. Comment créer un fichier avec une taille donnée sous Linux ?

  4. Répertorier tous les fichiers d'images graphiques avec rechercher ?

  5. trouver les fichiers dont le numéro dans le nom de fichier est supérieur à

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

Comment tuer tous les processus avec un nom partiel donné ?

Trouver tous les fichiers dont le nom contient une chaîne

Trouver des répertoires contenant tous les fichiers antérieurs à X ?

Comment supprimer un fichier avec un nom bizarre ?

Comment lister tous les utilisateurs avec root ?