Bagaimana saya bisa mengurutkan berdasarkan pemilik dan grup?

9

Bagaimana saya bisa mendaftar direktori dengan ls dan mengurutkannya menurut pemilik dan grup mereka?

AnnanFay
sumber

Jawaban:

8

Coba ini:

ls -l | awk '{print $3, $4, $8}' | sort

Ini akan mencetak nama pengguna, nama grup dan nama file, asalkan nama file tidak mengandung spasi. Atau, Anda dapat mengetik:

ls -l | awk '{print $3, $4, $0}' | sort

Ini akan mencetak nama pengguna, nama grup dan ls -loutput penuh , diurutkan berdasarkan nama pengguna terlebih dahulu, lalu nama grup, lalu apa pun yang ls -ldicetak terlebih dahulu.

Perhatikan bahwa tergantung pada distribusi Anda, nomor kolom yang sebenarnya mungkin berbeda. Saya mencoba milik saya di SUSE dan coreutils versi 5.2.1.

Mungkin ada solusi yang lebih baik, lebih rumit, tetapi ini adalah yang paling sederhana, dan akan bekerja sebagian besar waktu.

petersohn
sumber
1
s / nomor baris / nomor kolom /
Dijeda sampai pemberitahuan lebih lanjut.
7

Seperti yang dikatakan petersohn, sesuatu yang mirip dengan:

  • ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
    menambahkan $8dan column -tuntuk cetak cantik

Atau lebih baik lagi:

  • ls -l | sort -k 3 - mengurutkan menurut pemilik dan secara default mengurutkan bidang berikutnya (grup) dan
  • ls -l | sort -k 4,4 -k 3 - mengurutkan berdasarkan kelompok dan kemudian oleh pemilik
  • ls -l | sort -k 3,3 -k 8 - macam oleh pemilik dan kemudian dengan nama file

Catatan: koma adalah bidang terminator sehingga 3,3dimulai dan diakhiri di bidang 3 3,5jenis dari bidang 3 hingga 5.

vol7ron
sumber
Untuk mengurutkan berdasarkan grup dan kemudian oleh pemilik saya harus menambahkan -b untuk mengabaikan blanko terkemuka, jika tidak daftar akan diurutkan berdasarkan panjang string dari nama pemilik.
Stefan Schmidt