Intereting Posts
Как Linux форматирует себя во время работы? Можно ли переопределить тильду ('~', домашний каталог)? Команда скрипта без вывода Получите дефолт ubuntu motd в раковине рыбы OpenBSD с adsuck: nslookup работает, другие приложения не Список правил iptables как команда добавления В любом случае, чтобы читать NFS vhdx из Hyper-V под Windows? отображать пользователей, которые вошли в систему с даты, используя последние Поиск URL с поддоменами с использованием grep Применение функции bash для каждого файла в подпапке рекурсивно Изменение пустой строковой переменной внутри оператора switch в функции bash Клонирование корневого раздела на зашифрованный dm-crypt Есть ли способ использовать подстановку параметров для запуска одного завитка на двух разных серверах? Почему сборка не работает, даже если у меня есть URI в моем списке источников? Не удалось скомпилировать vapoursynth: не удалось связать zimg

как сортировать файлы по их разрешениям с помощью ls?

У меня есть большое количество файлов и каталогов в одном каталоге.

Мне нужно отсортировать их с точки зрения разрешений.

Например

drwx------ drwxr-xr-x drwxr-x--- 

Мне просто интересно, можем ли мы сортировать файлы и dirs с помощью ls ?

ls напрямую не поддерживает сортировку по разрешениям, но вы можете комбинировать его с командой sort:

 ls -l | sort 

Вы можете использовать параметр -k для сортировки для начала сопоставления с определенным символом, формат -k FIELD.CHAR , разрешения – это первое поле в выводе ls . Так, например, -k 1.2 начнет со второго символа строки разрешения, которая будет игнорировать любой флаг каталога / устройства / ссылки и т. Д. Или -k 1.5 для сортировки по групповым разрешениям.

Если вам не нужен дополнительный вывод ls -l , вы можете удалить его с помощью awk:

  ls -l | sort | awk '{ print $1, $NF}' 

Это будет печатать только первое поле (разрешения) и последнее (имя файла).

Вы также можете сортировать по восьмеричному значению.

 for i in *; do stat --format="%a %n" "$i"; done | sort -n