Liste de tous les fichiers dans un répertoire avec une certaine extension
Disons que je veux la liste de tous les php
les fichiers dans un répertoire, y compris les sous-répertoires, je peux exécuter cette dans bash:
ls -l $(find. -name *.php -type f)
Le problème avec cela est que si il n'y a pas php
fichiers, la commande qui est exécutée en est ls -l
la liste de tous les fichiers et répertoires, au lieu de aucun.
C'est un problème, parce que je suis en train d'essayer d'obtenir la taille combinée de tous les php
fichiers à l'aide de
ls -l $(find . -name *.php -type f) | awk '{s+=$5} END {print s}'
qui se termine par le retour de la taille de toutes les participations dans le cas où il n'y a pas les fichiers correspondant à la *.php
modèle.
Comment puis-je garde par rapport à cet événement?
OriginalL'auteur xbonez | 2013-09-16
Vous devez vous connecter pour publier un commentaire.
Je vous suggère de d'abord rechercher les fichiers et ensuite effectuer la
ls -l
(ou tout autre chose). Par exemple, comme ceci:et puis vous pouvez transférer les
awk
expression pour l'ajouter.find . -name "*.php" -type f | xargs ls -l
, mais face au même problème.La plupart de temps, il n'est pas nécessaire de tuyau
xargs
aprèsfind
. Leexec
commande vous donne cet utilitaire. Notez qu'il est nécessaire d'utiliser{}
pour désigner le nom du fichier trouvé parfind
.OriginalL'auteur fedorqui
Si vous voulez éviter de l'analyse ls pour obtenir la taille totale, vous pourriez dire:
paste
etbc
.OriginalL'auteur devnull
Voici une autre manière, à l'aide de
du
:OriginalL'auteur dogbane