2010-07-26 32 views
7

esta pregunta es bastante similar a How can I list files with their absolute path in linux?Lista los archivos con recursiva ruta absoluta en Linux

Quiero obtener el nombre del archivo o carpeta con la ruta absoluta y la fecha de modificación.

Este comando prácticamente hace:

ls -lR /foo/bar | awk '{print $6,$7,$8,$9}' 

Pero es imposible mostrar la ruta absoluta.

Saludos Stollan

+1

Nunca analizar la salida de 'ls'. – Philipp

+2

Considerar las dificultades de analizar la salida 'ls'. Ver http://stackoverflow.com/questions/937716/how-do-you-send-the-output-of-ls-to-mv y http://mywiki.wooledge.org/ParsingLs –

Respuesta

12

Salida del comando find y su opción de printf.

find /foo/bar -printf "%p %[email protected]" 

Consulte la página del manual de find para obtener más información.

+2

'encontrar/directory -name "hello" -type f -print -exec date -r {} +% Y /% D:% H:% M \; 'de otra manera, no lo dará como respuesta porque el tuyo es bueno. – Anders

+1

Es posible que desee un '\ n'. '% A' es el tiempo de acceso - el OP pidió tiempo modificado que es'% T'. El '@' da segundos desde la época. Si desea una fecha/hora más legible para el ser humano, use: '% T +' o '% TY-% Tm-% Td% TX' o similar. Colocaría primero la fecha para un análisis de ancho fijo más sencillo. Entonces, finalmente: 'find/foo/bar -printf"% TY-% Tm-% Td% TX \ t% p \ n "' –

-1

me gusta usar:

ls -d -1 $PWD/** 
+0

Solo funciona en un nivel de profundidad. –

+0

Es cierto, supongo. Así que solo use esto si no desea incluir archivos en directorios dentro del directorio actual. –

0

Después de leer algunas soluciones parciales sin recursividad, formato de fecha parcial, no tubo ... mi propuesta es de la carpeta de destino:

find . -type f -exec ls -lAoUtTh {} \; | awk '{print $9"\t"$5"\/"$6"\/"$8"\t"$7"\t"$4}' | grep -E -i '.*\.fcp\b|.*\.omf\b' 

Funciona bien gracias a los contribuyentes, pero muy lentamente yo.

Gilles

OSX 10.8 Darwin fiesta

Cuestiones relacionadas