Longitud del rango en bash [duplicado]

1

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de eliminar algunos archivos en un directorio usando algunos comandos. Usando el bucle, for i in $(ls -tr $path); ... necesito saber la longitud de $(ls -tr $path) ¿Cómo obtener el número de archivos en el directorio $ path sin usar un bucle más?

El problema es eliminar los archivos de la carpeta. La carpeta resultante no debe contener más de 10 archivos más recientes.

Vyacheslav
fuente
2
No está claro qué es exactamente lo que está tratando de hacer, y qué quiere decir con "longitud"
janos
En un directorio tengo 14 archivos. ¿Cómo hacer un recuento de ellos sin usar un bucle más?
Vyacheslav
1
Uh, por favor no lo hagasfor i in $(ls ……) , ¿por qué tan complicado? Solo hazlo for i in $path. La primera variante se romperá tan pronto como los archivos tengan espacios en blanco en su nombre. A menos que, por supuesto, esté tratando de resolver un problema diferente, en cuyo caso sería preferible si preguntara sobre ese otro problema .
slhck
¿Puedo adivinar si está intentando eliminar los archivos n más nuevos o más antiguos en un directorio dado, o alguna variante de ese problema? :)
slhck
@slhck actualizó la publicación. Tienes razón)
Vyacheslav

Respuestas:

1

Prueba esto:

ls -l $path | wc -l

ls -l le dará una línea por archivo, wc -l cuenta el número de líneas.

tipo
fuente