Jak ograniczyć wyjście ls, aby wyświetlał tylko nazwę pliku, datę i rozmiar?
25
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.
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
@Sosukudo Tak, też nie jestem pewien. Ale wydaje się, że ludzie zgadzają się, aby głosować na złe pytania, ale nie odpowiedzi, jeśli są przydatne. meta.stackexchange.com/questions/98197/…
Jin
@Sosukodo: zachęcamy do głosowania teraz :)
patrz
6
brak obsługi nazw plików z wieloma spacjami
meso_2600
12
Technicznie nie jest to możliwe ls, ale findmoże wykonać tę samą pracę za pomocą -printfprzełącznika:
Twoja sugestia jest moim zwycięzcą i polecam, jeśli ludzie są zainteresowani większą liczbą pól do wydruku, to RTFM. Na przykład pokaż mi uprawnienia do wszystkich plików, które nie są katalogiem: 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 ...
Craig
Pytanie dotyczy Linuksa, więc nie jest to nierozsądna odpowiedź, ale dla zapisu wymaga to znalezienia GNU.
Dan Pritts
5
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
$
nie współpracuje z: zmiennymi własnościami, grupami, rozmiarami plików
meso_2600 30.03.2016
Wytnij nie zwija kolejnych ograniczników, w których podobnie jak 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 ' '
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 ...).
Pytanie dotyczyło Linuksa, więc twoja odpowiedź jest w porządku, ale dla każdego, kogo to obchodzi, oto odpowiednik statystyki FreeBSD. stat -f '%N %Sm %z' filename
Odpowiedzi:
ls -l | awk '{print $5, $6, $7, $9}'
Spowoduje to wydrukowanie rozmiaru pliku w bajtach, miesiącu, dacie i nazwie pliku.
źródło
Technicznie nie jest to możliwe
ls
, alefind
może wykonać tę samą pracę za pomocą-printf
przełącznika:źródło
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ć:
cut
to do:źródło
ls -l
dopeł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-
ls
sposób:Objaśnienie:
%y
= data modyfikacji czytelna dla człowieka;%s
= rozmiar w bajtach (%12s
wyrównany do prawej, długość 12);%n
= nazwa pliku (%-16n
wyrównana do lewej, długość 16);\t
= tab,\n
= linefeed.|
= literalny znak potoku, aby pokazać koniec nazwy pliku.Podobnie jak
ls
,stat
nie 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órefind ... -print0 | xargs -r0 stat ...
).źródło
stat -f '%N %Sm %z' filename
Niewielkie różnice w tolitiusie
źródło