Jak wykonać ls
sortowanie według typu pliku (np. Najpierw katalogów, a następnie rozszerzenia plików)? Odpowiedzi sugerowane w (Super User) Sortuj ls według typu pliku powodują nieznane błędy opcji ls
.
Jak wykonać ls
sortowanie według typu pliku (np. Najpierw katalogów, a następnie rozszerzenia plików)? Odpowiedzi sugerowane w (Super User) Sortuj ls według typu pliku powodują nieznane błędy opcji ls
.
Odpowiedzi:
Jak się dowiedziałeś, wersja ls
polecenia Darwina nie obsługuje tej -X | --sort=extension
opcji. Ta opcja jest unikalna dla wersji GNU ls
.
Możesz uzyskać wersję GNU ls
dla swojego systemu. Najłatwiej to zrobić za pomocą menedżera pakietów Homebrew i systemu przenoszenia. Po zainstalowaniu Homebrew:
brew install coreutils
aby dodać pakiet GNU Core Utilities do swojego systemu. Wszystkie narzędzia będą miały prefiks, g
aby nie kolidowały z domyślnymi narzędziami Darwina, z którymi jest dostarczany OS X.
Po zainstalowaniu GNU Core Utilites możesz teraz:
gls -X
I zobaczysz wynik sortowany według własnego uznania.
Jeśli chcesz używać GNU Core Utils zamiast narzędzi dostarczanych z OS X, możesz wstawić następujący wiersz w ~/.bashrc
pliku :
source /usr/local/Cellar/coreutils/8.14/aliases
I nie będziesz już musiał używać g
prefiksu poleceń. Powiem, że nie jest to całkowicie bezpieczne, ponieważ niektóre narzędzia GNU różnią się od wbudowanych bashów i narzędzi Darwina sposobem, w jaki się zachowują, na tyle, że mogą zepsuć inne rzeczy w twojej sesji powłoki. Więc rób to ostrożnie.
Na podstawie odpowiedzi w połączonym artykule Super User :
ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Jeśli chcesz zobaczyć cały wynik ls -l
, po prostu pomiń tę cut
część.
/bin/ls
.