Réponses:
J'utiliserais find dirname -not -empty -ls
, en supposant que GNU trouve.
ls
et que vous avez utilisé find
;) J'ai augmenté cependant ... C'est une bonne solution
C'est un travail pour trouver que ls n'est pas assez puissant.
find -maxdepth 1 -size +0 -print
-maxdepth 1
- cela indique à find de rechercher le répertoire actuel uniquement, de supprimer pour rechercher dans tous les sous-répertoires ou de changer le nombre pour descendre de 2, 3 niveaux ou plus.
-size +0
cela indique à find de rechercher des fichiers dont la taille est supérieure à 0
octets. 0
peut être changé en n'importe quelle taille que vous souhaitez.
-print
indique à find d'imprimer le chemin complet du fichier qu'il trouve
Edit:
ajout tardif: vous devriez probablement également ajouter le -type f
commutateur ci-dessus. Cela indique à find de ne rechercher que les fichiers. Et comme indiqué dans les commentaires ci-dessous, le -print
commutateur n'est pas vraiment nécessaire.
-maxdepth 1
avant -size +0
. Est également -print
l'action par défaut, donc elle n'est pas nécessaire.
find
varient considérablement en termes de ce que sont les options valides et où elles peuvent aller. GNU find
(qui est terriblement commun) va produire un avertissement si vous mettez -size
avant -maxdepth
.
Ls n'a presque aucune option pour filtrer les fichiers: ce n'est pas son travail. Le filtrage des fichiers est le travail du shell pour les cas simples (par globbing) et le travail de recherche pour les cas complexes.
Dans zsh, vous pouvez le L
qualificatif globbing pour conserver uniquement les fichiers dont la taille est> 0 (le .
qualificatif se limite aux fichiers normaux):
ls *(.L+0)
Les utilisateurs d'autres shells doivent utiliser find. Avec GNU find (comme on le trouve principalement sur Linux):
find -maxdepth 1 -type f ! -empty -exec ls {} +
Une manière conforme POSIX est:
find . -type f -size +0c -exec ls {} + -o -name . -o -prune
Si ls
était non seulement un exemple et vous simplement l' intention inspection visuelle, vous pourriez trier par taille: ls -S
.