2010-07-26 15 views
7

Questa domanda è molto simile a How can I list files with their absolute path in linux?Elenca i file con ricorsiva percorso assoluto in linux

voglio ottenere il nome del file o della cartella con il percorso assoluto e data di modifica.

Questo comando quasi lo fa:

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

Ma non mostra il percorso assoluto.

saluti Stollan

+1

Mai analizzare l'output di 'ls'. – Philipp

+2

Per quanto riguarda l'insorgere dell'output 'ls'. Vedere http://stackoverflow.com/questions/937716/how-do-you-send-the-output-of-ls-to-mv e http://mywiki.wooledge.org/ParsingLs –

risposta

12

Partenza il comando find e la sua opzione printf.

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

Vedere la pagina di manuale di find per ulteriori informazioni.

+2

'trova/directory -name "ciao" -tipo f -print -exec data -r {} +% Y /% D:% H:% M \; 'in un altro modo, non lo darà come risposta perché il tuo è buono. – Anders

+1

Si potrebbe desiderare un '\ n'. '% A' è il tempo di accesso - l'OP ha richiesto un tempo modificato che è'% T'. Il '@' fornisce i secondi dall'epoca. Se si desidera una data/ora più leggibile dall'uomo, utilizzare: '% T +' o '% TY-% Tm-% Td% TX' o simile. Metterei prima la data per un più semplice parsing a larghezza fissa. Quindi, finalmente: 'find/foo/bar -printf"% TY-% Tm-% Td% TX \ t% p \ n "' –

-1

Mi piace usare:

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

Funziona solo a un livello profondo. –

+0

Vero, credo. Quindi usalo solo se non vuoi includere i file nelle directory all'interno della directory corrente. –

0

Dopo aver letto alcune soluzioni parziali non ricorsione, il formato della data parziali, senza tubo ... la mia proposta è dalla cartella di destinazione:

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

Opere bene grazie ai contributori, ma molto lentamente con me.

Gilles

OsX 10.8 Darwin bash

Problemi correlati