55 votes

Comment compter le nombre de fichiers dans un répertoire, mais pas de manière récursive ?

Question simple, j'en suis sûr. J'ai vu une réponse qui montrent comment le faire en incluant les sous-répertoires, mais je veux savoir combien de fichiers (et non de dossiers) se trouvent dans le répertoire actuel uniquement. Merci.

93voto

thom Points 6932
ls -F |grep -v / | wc -l
  1. ls -F liste tous les fichiers et ajoute l'indicateur (un des */=>@|) aux entrées
  2. grep -v / garder toutes les chaînes de caractères qui le font pas contiennent un barre oblique
  3. wc -l compter les lignes

26voto

Essayez cet oneliner :

find -maxdepth 1 -type f | wc -l

7voto

AHMET OZAN Points 21

Essayez ceci

ls -al | grep ^[-] | wc -l
  1. ls -al -- liste tous les fichiers avec un format de liste long
  2. grep ^[-] -- recherche d'une chaîne de caractères commençant par "-" qui est le symbole d'un fichier ordinaire dénoté lorsque le fichier est listé avec ls -al.
  3. wc -l -- compter les lignes

3voto

Aditya Kresna Points 31

Je veux juste ajouter La réponse de Thom parce que j'aime jouer avec Bash . C'est parti :

echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"

Vous trouverez ci-dessous un exemple de résultat de mon /data répertoire :

Directory /data has 580569 file(s).

Et voici mes explications :

  1. echo _double-quoted-message_ imprimera un message souhaitable.
  2. $(_any-desirable-valid-command_) à l'intérieur du message entre guillemets d'un echo imprimera le résultat de l'exécution de la commande correspondante.
  3. pwd imprimera le répertoire courant.
  4. ls -F permet de lister tous les fichiers et d'ajouter un indicateur (un des */=>@|) aux entrées. J'ai copié ceci à partir de la réponse de thom .
  5. grep -v / est une commande permettant de rechercher du texte en clair, la commande -v / conservera toutes les chaînes de caractères qui ne contiennent pas de barre oblique.
  6. wc -l imprimera le comptage des lignes.

Je sais que cette question est vieille de 3 ans, mais je ne peux pas retenir mon envie d'ajouter une autre réponse.

3voto

pgunn Points 9

Si vous avez tree installé sur votre système, vous pouvez utiliser cette commande :

tree -L 1 /path/to/your/directory | tail -n 1

Il vous montre le nombre de fichiers et de répertoires dans ce répertoire.

-L n indique la profondeur de la recherche.

Vous pouvez installer tree con sudo apt-get install tree .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X