GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu seřadit ls podle vlastníka a skupiny?

Zkuste toto:

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

Vytiskne uživatelské jméno, název skupiny a název souboru za předpokladu, že název souboru neobsahuje mezery. Případně můžete napsat:

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

Tím se vytiskne uživatelské jméno, název skupiny a úplné ls -l výstup, seřazený nejprve podle uživatelského jména, potom názvu skupiny a poté podle ls -l vytiskne jako první.

Všimněte si, že v závislosti na vaší distribuci se mohou skutečná čísla sloupců lišit. Zkoušel jsem svůj v SUSE a coreutils verze 5.2.1.

Pravděpodobně existují lepší a propracovanější řešení, ale toto je to nejjednodušší a bude fungovat většinu času.


Jak řekl petersohn, něco podobného jako:

  • ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
    přidal $8 a column -t za pěkný tisk

Nebo ještě lépe:

  • ls -l | sort -k 3 - seřadí podle vlastníka a ve výchozím nastavení seřadí další pole (skupinu) a na
  • ls -l | sort -k 4,4 -k 3 - třídí podle skupiny a poté podle vlastníka
  • ls -l | sort -k 3,3 -k 8 - seřadí podle vlastníka a poté podle názvu souboru

Poznámka: čárka je pole zakončení, takže 3,3 začíná a končí v poli 3 3,5 seřadí od polí 3 do 5.


Linux
  1. Jak najít velké soubory linux pomocí příkazů find a du

  2. Jak spravovat uživatele a skupiny na serveru FreeIPA

  3. Jak najít vlastníka a skupinu adresáře?

  1. Jak mohu přimět ls, aby nejprve zobrazoval dotfiles?

  2. Jak mohu změnit výchozí skupinu uživatele v systému Linux?

  3. Jak mohu použít zástupné znaky stylu ms-dos s ls a mv?

  1. Jak vytvořit a odstranit uživatelskou skupinu v Linuxu

  2. Jak mohu seřadit výstup du -h podle velikosti

  3. Proč můj crontab nefunguje a jak jej mohu odstranit?