Liste du contenu du répertoire

J’essaie d’écrire une commande UNIX en utilisant un canal qui affichera le nombre de fichiers dans mon répertoire personnel, y compris les fichiers cachés qui commencent par un “.”

Jusqu’à présent, j’ai:

ls -a. * | wc -l je reçois un entier retourné

Est-ce que ma commande est correcte?

En étant dans le répertoire courant:

 ls -1 | wc -l 

ou spécifiez le chemin complet:

 ls -1 /path/to/dir | wc -l 

-note cette clé pour ls n’est pas l , c’est 1 – qui sautera les fichiers “cachés” (ceux qui commencent par . ). Si vous voulez les inclure, alors:

 ls -1a /path/to/dir | wc -l 

-Mais note que (pointeur de répertoire courant) et .. (pointeur de répertoire parent) seront inclus, donc vous voudrez probablement soustraire 2 du numéro de résultat.

Est-ce que ma commande est correcte?

Non. En disant ls -a .* , La commande renverrait également des fichiers dans un répertoire commençant par a . en plus de revenir . et ..

Afin d’ display the number of files in my home directory including hidden files that begin with a '.' , dire:

 find $HOME -type f | wc -l 

Si vous voulez le limiter au seul répertoire HOME, dites:

 find $HOME -maxdepth 1 -type f | wc -l 

Vous pouvez également utiliser find :

 find ~ -type f | wc -l 

ou

 find ~ -type f -maxdepth 1 | wc -l 

si vous ne voulez pas trouver récursivement.

YA commande non récursive avec plus de tuyaux:

 ls -la | awk '{ print $1 }' | grep -v total | grep -vd | wc -l 

Meilleur non récursif – en tant que collègues ci-dessus, mais pour éviter les avertissements, veuillez mettre maxdepth avant l’option de type:

 find ~ -maxdepth 1 -type f | wc -l 

Récursive:

 find ~ -type f | wc -l