Secara default perintah ls mengurutkan hanya dengan nama file, tetapi saya ingin direktori muncul sebelum jenis file lainnya. Saya bahkan mungkin ingin file diurutkan berdasarkan ekstensi, seperti cara Windows explorer mengurutkan berdasarkan kolom jenis. Apakah ada cara untuk melakukan sesuatu yang mirip dengan ls?
44
--sort=extension
dan--group-directories-first
(atau hanya--group-directories
) berfungsi dengan baik untuk saya di Ubuntu 12.10. Layak dicoba di komputer Anda juga! =)-X / --sort=extension
dengan penggabungan--group-directories-first
dan hal lain yang saya coba di distro Linux modern. OP mengacu pada Fedora Core 8 (dirilis 2007) sehingga kemungkinan ada masalah seperti itu di masa lalu yang jauh.Di Linux,
(
man ls
adalah temanmu!)sumber
gls --group-directories-first
pada Mac jika Anda menginstalGNU Core utils
lebih dari homebrew-X adalah opsi yang Anda cari:
sumber
Pada bash, ini akan berfungsi:
Dari
man rev
:Jadi 1. ls memberikan outputnya, dengan flag apa pun yang Anda inginkan 2. setiap baris dibalik 3. lalu disortir 4. dan dibalik 5. seperti ini:
Atau, lebih tepatnya, seperti di bawah ini. Mereka diurutkan berdasarkan karakter terakhir, lalu ke yang terakhir, dll. Semua file .rtf, misalnya, didaftar bersama, setelah file .save dan file lain tanpa ekstensi yang namanya berakhir dengan 'e'. Kemudian datang file .png, dan sebagainya. Ini juga akan bekerja dengan ls-l, karena ekstensi biasanya adalah hal terakhir pada baris (pengecualian jika Anda memiliki baris seperti "tmp @ -> / home / jones / tmp", di mana tautan diikuti oleh target mereka).
sumber
ls -F
-F
) jika menyalurkannya melaluirev
&sort
tidak menghilangkan warna (-G
).Jika Anda tidak menggunakan linux,
harus mengurutkan direktori terlebih dahulu (beri tahu saya jika saya salah). Tidak mengurutkan berdasarkan ekstensi: Anda harus membuat pernyataan awk menjadi lebih sibuk jika Anda ingin melakukan itu ...
Untuk membuatnya berfungsi dengan nama yang berisi spasi, saya mungkin akan mengganti awk dengan sesuatu seperti
sed -E -e 's/([^ ]+[ ]+){8}//'
menghapus 8 bidang pertama alih-alih mencetak tanggal 9sumber
CLICOLOR
mengaktifkan ini akan menghapus pewarnaan.sed -E -e 's/([^ ]+[ ]+){8}//'
menghapus 8 bidang pertama alih-alih mencetak tanggal 9ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Jika Anda menjalankan di Linux, GNU
ls
mendukung--sort
opsi: -sumber
Pendekatan yang baik adalah memisahkan folder pada awalnya, lalu mengurutkan file berdasarkan ekstensi , dengan MENGURANGI dan MEMBACA:
sumber
Saya menambahkan baris .bashrc (linux) saya
dengan begitu saya cukup mengetik lx dan memilahnya berdasarkan ekstensi.
sumber
ls -X
:)