GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver tous les fichiers de zéro octet dans le répertoire et les sous-répertoires

Bash 4+ testé -C'est la bonne façon de rechercher la taille 0 :

find /path/to/dir -size 0 -type f -name "*.xml"

Rechercher plusieurs extensions de fichier de taille 0 :

find /path/to/dir -size 0 -type f \( -iname \*.css -o -iname \*.js \)

Remarque :Si vous supprimez le \( ... \), les résultats seront tous les fichiers qui répondent à cette exigence, ignorant ainsi la taille 0.


En plus des réponses ci-dessus :

Si vous souhaitez supprimer ces fichiers

find $dir -size 0 -type f -delete

Non, vous n'avez pas à vous soucier de grep.

find $dir -size 0 ! -name "*.xml"

Pour imprimer les noms de tous les fichiers dans et en dessous de $dir de taille 0 :

find "$dir" -size 0

Notez que toutes les implémentations de find produira une sortie par défaut, vous devrez donc peut-être faire :

find "$dir" -size 0 -print

Deux commentaires sur la dernière boucle de la question :

Plutôt que d'itérer sur tous les autres mots d'une chaîne et de voir si les valeurs alternatives sont nulles, vous pouvez partiellement éliminer le problème que vous rencontrez avec les espaces en itérant sur les lignes. ex :

printf '1 f1\n0 f 2\n10 f3\n' | while read size path; do
    test "$size" -eq 0 && echo "$path"; done

Notez que cela échouera dans votre cas si l'un des chemins générés par ls contient des retours à la ligne, et cela renforce 2 points :n'analysez pas ls , et ayez une politique de nommage saine qui n'autorise pas les espaces dans les chemins.

Deuxièmement, pour sortir les données de la boucle, il n'est pas nécessaire de stocker la sortie dans une variable juste pour echo ce. Si vous laissez simplement la boucle écrire sa sortie sur stdout, vous accomplissez la même chose mais évitez de la stocker.


Linux
  1. Comment trouver le nombre de fichiers dans un répertoire et des sous-répertoires

  2. Linux Trouver et supprimer tous les liens symboliques relatifs à un répertoire ?

  3. Rechercher et copier des fichiers

  4. Rechercher et renommer un répertoire

  5. Comment grep une chaîne dans un répertoire et tous ses sous-répertoires ?

Linux :rechercher le nombre de fichiers dans un répertoire et des sous-répertoires

Décompressez tous les fichiers dans un répertoire

Comment puis-je copier de manière récursive tous les fichiers pdf d'un répertoire (et de ses sous-répertoires) dans un seul répertoire de sortie?

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

Copier tous les fichiers dans les sous-répertoires et les renommer au lieu de les écraser

Comment trouver tous les fichiers de zéro octet dans le répertoire