Jak mogę wyświetlić katalogi za pomocą ls i posortować je według właściciela i grupy?
9
Spróbuj tego:
ls -l | awk '{print $3, $4, $8}' | sort
Wydrukuje nazwę użytkownika, nazwę grupy i nazwę pliku, pod warunkiem, że nazwa pliku nie zawiera spacji. Możesz też wpisać:
ls -l | awk '{print $3, $4, $0}' | sort
Spowoduje to wydrukowanie nazwy użytkownika, nazwy grupy i pełnego ls -l
wyniku, posortowanych według nazwy użytkownika, potem nazwy grupy, a następnie wszystkiego, co zostanie ls -l
wydrukowane jako pierwsze.
Pamiętaj, że w zależności od dystrybucji rzeczywiste numery kolumn mogą się różnić. Próbowałem mój w SUSE i Coreutils w wersji 5.2.1.
Prawdopodobnie są lepsze, bardziej skomplikowane rozwiązania, ale jest to najprostsze i będzie działać przez większość czasu.
Jak powiedział Petersohn, coś podobnego do:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
dodano
$8
icolumn -t
dla ładnego wydrukuLub nawet lepiej:
ls -l | sort -k 3
- sortuje według właściciela i domyślnie sortuje następne pole (grupę) i włączonels -l | sort -k 4,4 -k 3
- sortuje według grupy, a następnie według właścicielals -l | sort -k 3,3 -k 8
- sortuje według właściciela, a następnie według nazwy plikuUwaga: przecinek jest polem terminatora, więc
3,3
zaczyna się i kończy w polu 33,5
sortuje od pól 3 do 5.źródło