Comment trouver tous les fichiers de zéro octet dans un répertoire et même dans des sous-répertoires?
Je l'ai fait:
#!/bin/bash
lns=`vdir -R *.* $dir| awk '{print $8"\t"$5}'`
temp=""
for file in $lns
do
if test $file = "0"
then
printf $temp"\t"$file"\n"
fi
temp=$file
done
mais je n'obtiens que des résultats dans ce fichier de répertoire, pas tous les fichiers et si un nom de fichier a un espace, je n'obtiens que le premier mot suivi d'un onglet
Quelqu'un peut-il m'aider?
Pour imprimer les noms de tous les fichiers dans et sous $ dir de taille 0:
find "$dir" -size 0
Notez que toutes les implémentations de find
ne produiront pas de sortie par défaut. Vous devrez donc peut-être:
find "$dir" -size 0 -print
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"
Bash 4+ testé - Ceci est la bonne façon de rechercher une 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 supprimiez\(... \), tous les fichiers répondant à cette exigence seraient alors ignorés, en ignorant la taille 0.