2010-07-26 12 views
7

to pytanie jest dość podobna do How can I list files with their absolute path in linux?Lista plików z absolutnym rekursywnego ścieżki w Linuksie

Chcę uzyskać nazwę pliku lub folderu ze ścieżki bezwzględnej i data modyfikacji.

Polecenie to prawie robi:

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

Ale robi to pokazać ścieżkę bezwzględną.

Pozdrowienia Stollan

+1

Nigdy analizować wyjście 'ls'. – Philipp

+2

Odnaleźć pułapki parsowania wyjścia 'ls'. Zobacz http://stackoverflow.com/questions/937716/how-do-you-send-tout-of-ls-to-mv i http://mywiki.wooledge.org/ParsingLs –

Odpowiedz

12

poleceniu wyjazdu na find i jego opcja printf.

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

Aby uzyskać więcej informacji, zobacz stronę podręcznika użytkownika find.

+2

'znajdź/katalog -name "cześć" -typ f -print -exec data -r {} +% Y /% D:% H:% M \; 'inny sposób, nie da tego jako odpowiedź, ponieważ twoja jest dobra. – Anders

+1

Możesz chcieć '\ n'. '% A' to czas dostępu - OP zażądał zmodyfikowanego czasu, który wynosi"% T ". '@' Podaje sekundy od epoki. Jeśli chcesz uzyskać bardziej czytelną dla człowieka datę/czas, użyj: '% T +' lub '% TY-% Tm-% Td% TX' lub podobny. Najpierw ustawiłabym datę na łatwiejszą parsowanie o stałej szerokości. Na koniec: 'find/foo/bar -printf"% TY-% Tm-% Td% TX \ t% p \ n "' –

-1

lubię używać:

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

Działa tylko na głębokości jednego poziomu. –

+0

To prawda. Używaj tego tylko wtedy, gdy nie chcesz umieszczać plików w katalogach wewnątrz bieżącego katalogu. –

0

Po przeczytaniu niektórych rozwiązania częściowe bez rekursji, częściowy format daty, bez rury ... moja propozycja jest z folderu docelowego:

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

działa dobrze dzięki współtwórcom, ale bardzo powoli przede wszystkim mnie.

Gilles

OsX Darwin 10,8 bash

Powiązane problemy