Как найти все файлы размером более 10 МБ, отсортировать их в порядке убывания размера и записать имена файлов и их размер в текстовый файл.

find . -size +10240k -exec ls -l {} \; | awk '{ print $5,"",$9 }'|sort -rn > message.out


Команда find используется для поиска файлов и директорий в указанной директории и ее поддиректориях. В данном случае команда ищет файлы в текущей директории (.) и ее поддиректориях, размер которых превышает 10240 килобайт (10 МБ).

Опция -exec позволяет выполнить команду для каждого найденного файла. В данном случае, команда ls -l {} \; выполняется для каждого найденного файла и выводит детальную информацию о файле.

Результаты выполнения команды ls -l передаются в команду awk, которая осуществляет обработку вывода команды ls -l. Конкретно, она извлекает размер файла и его имя, и разделяет их пробелами.

Затем, результаты обработки передаются в команду sort -rn, которая сортирует записи в порядке убывания размера файла.

Наконец, символ > перенаправляет результаты сортировки в файл с именем message.out.

Альтернативой такому подходу может быть использование команды du -k для получения размера файлов, а затем сортировка этих размеров с помощью команды sort -rn. Однако, эта команда не позволит получить имена файлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *