Jak mogę użyć lsw systemie Linux, aby uzyskać listę nazw plików tylko datę i rozmiar? Nie muszę widzieć innych informacji, takich jak właściciel, pozwolenie.
Jak mogę użyć lsw systemie Linux, aby uzyskać listę nazw plików tylko datę i rozmiar? Nie muszę widzieć innych informacji, takich jak właściciel, pozwolenie.
Odpowiedzi:
ls -l | awk '{print $5, $6, $7, $9}'
Spowoduje to wydrukowanie rozmiaru pliku w bajtach, miesiącu, dacie i nazwie pliku.
jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 bar
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 baz
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 quux
jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux
Technicznie nie jest to możliwe ls, ale findmoże wykonać tę samą pracę za pomocą -printfprzełącznika:
find -maxdepth 1 -printf '%t %s %p\n'
find usr/lib/ -not -type d -printf '%M %p\n wyjście: -rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so... Naucz człowieka łowienia ryb i tak dalej ...
zawsze możesz zrobić:
$ ls -l
total 0
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file1
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file2
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file3
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file4
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file5
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file6
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file7
cut to do:
$ ls -l | cut -f 8-13 -d ' '
0 Oct 6 23:29 file1
0 Oct 6 23:29 file2
0 Oct 6 23:30 file3
0 Oct 6 23:30 file4
0 Oct 6 23:30 file5
0 Oct 6 23:30 file6
0 Oct 6 23:30 file7
$
ls -ldopełnienie spacjami. Jeśli twoje kolumny nie mają jednolitej długości (która kolumna 5, rozmiar pliku często nie będzie), cięcie nie wybierze kolumn poprawnie. Pomoże zwinięcie kolejnych spacji (uważaj na spacje w nazwach plików). ls -l | tr -s ' ' | cut -f 8-13 -d ' '
Kolejny nie- lssposób:
> stat --printf='%y\t%12s\t%-16n|\n' tmp.*
2017-06-15 10:42:07.252853000 +0200 10485760 tmp.1 |
2017-06-15 10:41:25.659570000 +0200 666 tmp.TKPzm3BfRw |
Objaśnienie: %y= data modyfikacji czytelna dla człowieka;
%s= rozmiar w bajtach ( %12swyrównany do prawej, długość 12);
%n= nazwa pliku ( %-16nwyrównana do lewej, długość 16); \t= tab, \n= linefeed. |= literalny znak potoku, aby pokazać koniec nazwy pliku.
Podobnie jak ls, statnie ma opcji wyboru plików do wyświetlenia. (Można to zrobić na przykład przez globbing powłoki, jak pokazano powyżej lub niektóre find ... -print0 | xargs -r0 stat ...).
stat -f '%N %Sm %z' filename
Niewielkie różnice w tolitiusie
ls -lh | cut -f 6- -d ' '