¿Contar el número de archivos dentro de un directorio en Linux? [cerrado]

333

Para contar la cantidad de archivos en un directorio, normalmente uso

ls directory | wc -l

Pero, ¿hay otro comando que no use wc?

Kantura
fuente
16
¿Cuál es exactamente el problema wcque te impide usarlo?
vanza
55
Realmente no. Los comandos de Unix generalmente están destinados a ser utilizados de esta manera, encadenados en tuberías.
Michael Berkowski
2
Me estoy conectando a través de ssh a otro host para acceder a algunos datos. Desafortunadamente, un montón de comandos básicos no parecen funcionar en este host. Si uso wc, devuelve "comando no reconocido". Entonces estoy buscando otras opciones.
Kantura
77
Usa el treecomando. Le dará el árbol y en la parte inferior le dirá cuántos archivos y directorios hay. Si desea archivos ocultos también use tree -a.
Elijah Lynn
55
@vanza " ¿Cuál es exactamente el problema con wc ", ¿qué pasa si un archivo tiene un \nnombre en el archivo? ¡Sí, extremadamente improbable! Pero sigue siendo técnicamente válido y posible.
JamesThomasMoon1979

Respuestas:

524

este es uno:

ls -l . | egrep -c '^-'

Nota:

ls -1 | wc -l

Lo que significa:: lslistar archivos en dir

-1: (eso es UNO) solo una entrada por línea. Cámbielo a -1a si también quiere archivos ocultos

|: salida de tubería a ...

wc: "el recuento de palabras"

-l: cuenta lines.

Sajad Karuthedath
fuente
1
No, espera . Hice un booboo. Tienes toda la razón, Sajad Lfc. ls -1 dir | egrep -c '' Esto devuelve el número de archivos en dir. Gracias .
Kantura
1
@SajadKaruthedath ls -l . | egrep -c '^-'no cuenta los archivos ocultos. Sugiero agregar -abandera a ls.
JamesThomasMoon1979
1
@ JamesThomasMoon1979: compruebe mi descripción
Sajad Karuthedath
1
Esto muestra un error cuando no hay archivos en la carpeta. Uso ls -1 /dir 2>/dev/null | wc -l. Aquí la salida de ls se dirige a / dev / null y el resultado es un cero limpio
Sathish
66
@runios es porque ls -ldevuelve una línea adicional en la parte superior que suma los tamaños de archivo por un monto total. Debe usar ls -1y no el ls -l. Además, si uno quiere archivos ocultos pero sin los directorios .y ..debe usarlosls -1A | wc -l
Daniel Biegler