¿Cómo puedo usar ls
en Linux para obtener una lista de nombres de archivos de fecha y tamaño solamente? No necesito ver la otra información, como el propietario o el permiso. es posible?
linux
command-line
files
ls
Dedo meñique
fuente
fuente
ls
es genial porque tiene una clasificación muy rápida por fecha y hora, pero el formato es difícil de manejar. Sugiero usar un token en --time-style, como--time-style='+&%Y%m%d+%H%M%S.%N'
donde el token es '&', y usarlo como referencia puede analizar aún más la salidased
para que también pueda retroceder, ¡justo antes de que el token tenga el tamaño! Si alguien quiere publicar eso como una respuesta completa, siéntase libre de hacerlo, estoy demasiado dormido en este momento :)Respuestas:
¿Por qué no usar en
stat
lugar dels
?fuente
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
, puede agregar información de ancho a la cadena de formato como la función C printf, por ejemplo"%y %8s %n"
, no está documentada, pero parece funcionar (coreutils 8.17, Fedora 18)ls
puedo emitirlo con un mil separador de caracteres. ¿Cómo funcionastat
?ls
. ¿Qué pasa con los colores?Puede obtener mucho control sobre cómo enumera los archivos con la
find
utilidad.ls
realmente no te permite especificar las columnas que deseas.Por ejemplo:
El argumento de la
printf
acción se detalla en la página de manual. Puede elegir información de tiempo diferente, qué tamaño desea (tamaño de archivo o bloques de disco utilizados), etc. También puede hacer esto seguro para nombres de archivo inusuales si se necesita un procesamiento adicional.fuente
%C+
(salida "2016-08-29 + 10: 57: 56.9201257840") y%Cc
(salida "Mo 29 Aug 2016 10:57:56 CEST")Siempre puede usar otra utilidad como
awk
formatear la salida dels
1 :1.Sí, en general, no debe analizar la salida de ls, pero en este caso la pregunta lo requiere específicamente ...
fuente
ls
tiene un alias (por ejemploalias ls='ls -i'
). Realmente debe tener mucho cuidado si desea analizar la salida de ls.ls
, pero eso es lo que el OP quería .../bin/ls
evitaría el problema del alias)ls
que ambos acordamos que no va a satisfacer el requisito de espacio en blanco. La/bin/ls
sugerencia es buena.-h
para que sea legible para los humanos. Específicamente utilicé:ls -lah | awk '{print $5,$6,$7,$8}'
que produce:4.0K Jan 24 18:17
. Por supuesto, la solución original no dice nada acerca de awk, pero en Linux debemos asumir que la salida de un proceso siempre será la entrada a otro proceso, ¿verdad? ;)También puede usar el comando 'fecha'. Es muy fácil de usar:
fuente
date -r foo*.txt
->date: extra operand "foo2.txt"
Si desea usar ls, pero preservar el tamaño adecuado, puede usar:
fuente
donde el espacio se define como el separador y f6 significa campo 6
fuente
Puedes canalizar dos comandos
fuente
ls -s1 devuelve el tamaño y el nombre del archivo solo en AIX, no estoy seguro acerca de Linux
fuente