A voir également:
- Compter le nombre de fichiers dans un répertoire windows
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Clé windows 10 gratuit - Guide
- Comment réduire la taille d'un fichier - Guide
- Installer windows 10 sans compte microsoft - Guide
4 réponses
UnGnU
Messages postés
1158
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
157
11 juin 2018 à 10:24
11 juin 2018 à 10:24
Salut,
Si la commande tree est installée :
Exemple :
Si la commande tree est installée :
tree /chemin/ | tail -1
Exemple :
$ tree dok/| tail -1
15 directories, 31 files
Utilisateur anonyme
Modifié le 11 juin 2018 à 21:56
Modifié le 11 juin 2018 à 21:56
un problème momentané avec l'interface du forum ?
je n'arrive pas à faire enregistrer/apparaître mon code.
bon. finalement, ça a été posté...
je n'arrive pas à faire enregistrer/apparaître mon code.
bon. finalement, ça a été posté...
Utilisateur anonyme
11 juin 2018 à 21:29
11 juin 2018 à 21:29
Finalement c'est assez limité le shell.
bah, oui, si tu te coupes un doigt de pieds tu vas courir moins vite/bien !
bah, oui, si tu te coupes un doigt de pieds tu vas courir moins vite/bien !
#!/bin/bash
listF=( ./* )
printf 'nb fichiers: %d\n' ${#listF[*]}
Salut, il faudrait l'adapter pour prendre en compte les fichiers qui commencent par un point, le test si fichier/dossier, mais sinon c'est le même problème, on parcours pour enregistrer des noms dans un tableau en gardant le tout en mémoire, pour finalement compter ces noms avec une deuxième commande.
Je vous remercie tous pour vos réponses.
Effectivement c'est du shell, mais je trouve que ça valait le coup de se poser la question :-)
Cherchant une solution que j'aurais pu utiliser de base sur la plupart des systèmes, je ne vais pas compiler de programme perso en C, et rester sur une solution avec un find -print0, même si la solution listF=( ./* ) a l'air de bien fonctionner aussi.
Je garde ça en tête au cas où je tomberais un jour sur une manière plus directe d'avoir ce résultat en shell
Effectivement c'est du shell, mais je trouve que ça valait le coup de se poser la question :-)
Cherchant une solution que j'aurais pu utiliser de base sur la plupart des systèmes, je ne vais pas compiler de programme perso en C, et rester sur une solution avec un find -print0, même si la solution listF=( ./* ) a l'air de bien fonctionner aussi.
Je garde ça en tête au cas où je tomberais un jour sur une manière plus directe d'avoir ce résultat en shell
11 juin 2018 à 10:36
Mais, désolé de titiller :-), cet utilitaire envoie inutilement les noms des fichiers sur la sortie standard, en plus du traitement qu'il doit faire dessus pour les afficher sous forme d'arbre. Je souhaiterais juste compter le nombre de fichiers, pas besoin de faire tout ça en même temps.
11 juin 2018 à 10:52
11 juin 2018 à 10:59
Finalement c'est assez limité le shell. Je te remercie d'avoir cherché également.
Le sujet reste ouvert au cas où quelqu'un aurait une idée, peut-être avec une commande très proche du système à laquelle on n'aurait pas pensé.
Je vais aller tester du sur du fat32 ou ntfs pour voir
11 juin 2018 à 11:11
De n'importe quelle façon que tu fasses, il faudra bien à un moment ou un autre, lister le contenu pour comptabiliser le tout, et que ce soit sur la sortie standard, dans la mémoire ou où bon te semble.
Donc je ne vois pas ce qui te gène là-dedans ? ;-\
11 juin 2018 à 11:26
- Accéder à la "table des matières" du dossier
- Déterminer le nombre de fichiers qu'il contient, soit en parcourant la "table des fichiers", en mémoire cela se traduirait par l'incrémentation une seule variable entière, ou soit en le déterminant directement selon les informations disponibles dans cette "table des matières" s'il y a cette possibilité.
- L'afficher.
Afficher tous les noms de fichiers pour les passer à un second programme qui lui va faire un comptage, je trouve que cela fait beaucoup d'opérations inutiles, même si ça ne représente quasi rien sur les systèmes récents.
Ce n'est même plus du tout la même chose, on compte des lignes ou des caractères, là où on cherchait à compter un nombre de fichiers d'un dossier sur un système, c'est une méthode indirecte pour arriver au résultat.