Jak rekurencyjnie wyświetlić listę wszystkich plików ze znacznikami czasu i pełną ścieżką?


3

Chcę rekurencyjnie wyświetlić listę wszystkich plików w danym katalogu, wraz z ich pełną ścieżką i znacznikami czasu. Coś takiego:

10:30 Dec 10 2010 /tmp/mydir/myfile

Próbowałem z:

find . -type f -exec ls -la {} \;

ale to nie daje mi pełnej ścieżki.

Odpowiedzi:


1

I inny sposób na zrobienie tego, jeśli twoje znalezisko nie obsługuje printf

find . -type f | xargs ls -al  | awk -v pwd="$PWD" '{ print $(NF-2), $(NF-1) , pwd substr($(NF), 2)}'  

Uwaga: Działa to tylko wtedy, gdy w nazwach plików nie ma spacji. Dane wyjściowe wyglądają tak:

2010-09-29 22:08 /home/nifle/ac.txt
2010-10-04 16:02 /home/nifle/array.sh
2010-10-05 23:32 /home/nifle/b.txt
2010-12-15 16:49 /home/nifle/barcopy/subbar/ghut
2010-12-15 16:48 /home/nifle/bardir/subbar/ghut
2010-09-29 22:16 /home/nifle/foo.gz
2010-09-29 22:16 /home/nifle/foo1.gz

1
O ile w nazwach plików nie ma spacji.
Dennis Williamson

@Dennis - Ahh, tak, zdecydowanie masz rację.
Nifle

7

Rozwiązanie 1 (ls)

Uruchom lsna każdym pliku i odfiltruj wynik:

find "$PWD" -type f -exec ls -la {} \; | cut -d ' ' -f 6-

Wynik:

Jun 14 00:02 /tmp/superuser.com/questions/370070/bar
Jun 14 20:24 /tmp/superuser.com/questions/228529/file  with    multiple   spaces
Jan  2  1972 /tmp/superuser.com/questions/228529/old_file

Rozwiązanie 2 (-printf)

Użyj -printf:

find "$PWD" -type f -printf "%t %p\n"

Wynik:

Thu Jun 14 00:02:47.0173429319 2012 /tmp/superuser.com/questions/370070/bar
Thu Jun 14 20:24:16.0947808489 2012 /tmp/superuser.com/questions/228529/file  with    multiple   spaces
Sun Jan  2 03:04:05.0000000000 1972 /tmp/superuser.com/questions/228529/old_file

Rozwiązanie 3 (stat)

Uruchom GNU statna każdym pliku:

find "$PWD" -type f -exec stat --format '%y %n' {} \;

Wynik:

2016-03-30 04:32:10.034718786 +0300 /etc/passwd
2015-12-21 19:30:07.854470768 +0200 /etc/group

Wskazówka: jeśli masz GNU find, \;możesz go zastąpić \+.


Można wymienić $PWDz ..
Dennis Williamson

@Dennis Williamson: polecenie z pytania już używa .zamiast $PWDi nie daje mu pełnej ścieżki.
Cristian Ciupitu

Ach, przepraszam, masz rację.
Dennis Williamson

0

To pytanie na StackOverflow bawi się z jedną częścią twojego pytania. Aby uzyskać to, co chcesz, możesz wypróbować następujące czynności:

find $ABSOLUTE_PATH_TO_DIR -ls

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.