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 lub pozwolenie. czy to możliwe?
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 lub pozwolenie. czy to możliwe?
Odpowiedzi:
Dlaczego nie użyć statzamiast ls?
stat -c "%y %s %n" *
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)
lsmogę go wyprowadzić za pomocą separatora tysięcy znaków. Jak to działa stat?
ls. Co z kolorami?
Możesz uzyskać dużą kontrolę nad sposobem wyświetlania plików za pomocą tego findnarzędzia. lstak naprawdę nie pozwala określić kolumn, które chcesz.
Na przykład:
$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601 4096 .
20111007.0601 2 b
20111001.1322 4096 a
Argument printfakcji 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.
%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 awksformatowanie wyniku ls1 :
/bin/ls -ls | awk '{print $7,$8,$9}'
1. Tak, generalnie, nie powinieneś analizować wyniku ls, ale w tym przypadku pytanie specjalnie go wymaga ...
lszostanie alias (powiedzmy alias 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/lsby uniknąć problemu alias.)
lsktórym oboje się zgadzamy, nie spełni wymogu białych znaków. /bin/lsSugestia jest dobry.
-hgo, 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:
date -r [nazwa pliku]
date -r foo*.txt->date: extra operand "foo2.txt"
gdzie przestrzeń jest zdefiniowana jako separator, a f6 oznacza pole 6
ls -lt | cut -d" " -f6-
Możesz potokować dwa polecenia
ls -l|cut -d" " -f5
lsjest ś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,seddzię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ę :)