Как я могу перечислить каталоги с помощью ls и отсортировать их по владельцу и группе?
9
Попробуй это:
ls -l | awk '{print $3, $4, $8}' | sort
Он напечатает имя пользователя, имя группы и имя файла, при условии, что имя файла не содержит пробелов. Кроме того, вы можете ввести:
ls -l | awk '{print $3, $4, $0}' | sort
Это напечатает имя пользователя, имя группы и полный ls -l
вывод, отсортированный сначала по имени пользователя, затем по имени группы, затем по ls -l
первому печатному документу .
Обратите внимание, что в зависимости от вашего распределения фактические номера столбцов могут отличаться. Я попробовал мой в SUSE и coreutils версии 5.2.1.
Возможно, есть лучшие, более сложные решения, но это самое простое и будет работать большую часть времени.
Как сказал Петерсон, нечто похожее на:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
добавил
$8
иcolumn -t
для довольно печатиИли даже лучше:
ls -l | sort -k 3
- сортирует по владельцу и по умолчанию сортирует следующее поле (группу) и включаетls -l | sort -k 4,4 -k 3
- сортировка по группе, а затем по владельцуls -l | sort -k 3,3 -k 8
- сортировка по владельцу, а затем по имени файлаПримечание: запятая является полем терминатора, поэтому
3,3
начинается и заканчивается в поле 3,3,5
сортируется по полям с 3 по 5.источник