Jak mogę użyć ls
w systemie Linux, aby uzyskać listę nazw plików tylko datę i rozmiar. Nie muszę widzieć innych informacji, takich jak właściciel lub pozwolenie. czy to możliwe?
linux
command-line
files
ls
Mały palec u ręki
źródło
źródło
ls
jest świetny, ponieważ ma bardzo szybkie sortowanie według daty i godziny, ale trudno jest sformatować. Sugeruję użycie tokena w stylu --time, tak jak--time-style='+&%Y%m%d+%H%M%S.%N'
tam, gdzie token to „&”, używając tego jako odniesienia, możesz dalej analizować dane wyjściowe,sed
dzięki czemu możesz również cofnąć się, tak jak zanim token ma rozmiar! Jeśli ktoś chce napisać to jako kompletną odpowiedź, nie krępuj się, w tej chwili za bardzo śpię :)Odpowiedzi:
Dlaczego nie użyć
stat
zamiastls
?źródło
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
, możesz dodać informacje o szerokości do ciągu formatu, np. Funkcję C printf, np."%y %8s %n"
Nie jest to udokumentowane, ale wydaje się działać (coreutils 8.17, Fedora 18)ls
mogę go wyprowadzić za pomocą separatora tysięcy znaków. Jak to działastat
?ls
. Co z kolorami?Możesz uzyskać dużą kontrolę nad sposobem wyświetlania plików za pomocą tego
find
narzędzia.ls
tak naprawdę nie pozwala określić kolumn, które chcesz.Na przykład:
Argument
printf
akcji jest szczegółowo opisany na stronie podręcznika. Możesz wybrać inną informację o czasie, jaki rozmiar chcesz (rozmiar pliku lub zastosowane bloki dysku), itp. Możesz także uczynić to bezpiecznym dla nietypowych nazw plików, jeśli konieczne jest dalsze przetwarzanie.źródło
%C+
(wyjście „2016-08-29 + 10: 57: 56.9201257840”) i%Cc
(wyjście „Mo 29 sierpnia 2016 10:57:56 CEST”)Zawsze możesz użyć innego narzędzia, takiego jak
awk
sformatowanie wynikuls
1 :1. Tak, generalnie, nie powinieneś analizować wyniku ls, ale w tym przypadku pytanie specjalnie go wymaga ...
źródło
ls
zostanie alias (powiedzmyalias ls='ls -i'
). Naprawdę powinieneś bardzo uważać, jeśli chcesz zająć się analizowaniem wyników ls.ls
, ale tego właśnie chciał OP…/bin/ls
by uniknąć problemu alias.)ls
którym oboje się zgadzamy, nie spełni wymogu białych znaków./bin/ls
Sugestia jest dobry.-h
go, aby był czytelny dla człowieka. W szczególności, że stosuje się:ls -lah | awk '{print $5,$6,$7,$8}'
co daje:4.0K Jan 24 18:17
. To prawda, że oryginalne rozwiązanie nie mówi nic o awk, ale w Linuksie powinniśmy założyć, że wyjście procesu zawsze będzie wejściem do innego procesu, prawda? ;)Możesz także użyć polecenia „data”. Jest bardzo łatwy w użyciu:
źródło
date -r foo*.txt
->date: extra operand "foo2.txt"
Jeśli chcesz użyć ls, ale zachowujesz odpowiedni rozmiar, możesz użyć:
źródło
gdzie przestrzeń jest zdefiniowana jako separator, a f6 oznacza pole 6
źródło
Możesz potokować dwa polecenia
źródło
ls -s1 zwraca rozmiar i nazwę pliku tylko w systemie AIX, nie jest pewne systemu Linux
źródło