Подтвердить что ты не робот

Показывать доступные для пользователя размеры файлов в терминале OSX

В Linux я набираю du -sh * | sort -rh для отображения файлов и каталогов в моем текущем каталоге, отсортированных от самого большого до самого маленького.

Как это сделать в терминале OSX, желательно, не устанавливая ничего лишнего?

4b9b3361

Ответ 1

Нет. Если вы не установите GNU Coreutils.

С brew например

brew install coreutils

а затем вы получите команду gsort, которая поддерживает -h.

Ответ 2

Лучшим ответом на этот вопрос 2 года (с использованием терминала в OSX 10.11) является просто добавить -h в команду ls, чтобы получить размер читаемых пользователем файлов.

Насколько я понимаю в последующих выпусках OSX, использование brew для установки coreutils не требуется. (Если я ошибаюсь, кто-то меня исправляет.)

Например, чтобы получить список файлов в текущем каталоге, в виде списка с одним столбцом и с указанием сведений о файле, введите:

ls -l

Если вы хотите, чтобы размеры, доступные для чтения человеком, просто добавили "h":

ls -hl

или

ls -lh

Буквы после "-" могут быть в любом порядке в этом случае.

Если, как говорится в детали вопроса, нужно упорядочить список файлов по размеру файла, самому большому размеру файла вверху, затем добавить капитал "S":

ls -lhS

Если вы хотите, чтобы невидимые файлы также были перечислены, добавьте "a":

ls -alhS

Снова буквы после "-" могут быть в любом порядке.


Если вы создаете и редактируете файлы в текущем каталоге часто, возможно, потому, что вы работаете над задачей или проектом, альтернативная комбинация:

ls -hltur

Здесь перечисляются файлы в формате для чтения в формате человека, в длинном списке в окне терминала.

"t" указывает порядок сортировки файлов по их последним измененным датам/временам.

Затем "u" слегка изменяет это значение, чтобы использовать время последнего доступа к файлам, а не последнее изменение.

Затем "r" отменит порядок списка, чтобы последние доступные или "тронутые" файлы были указаны последними в нижней части списка.

Полная комбинация означает, что у вас есть подробный список, с файлами, которые вы прочитали, открыли или модифицировали совсем недавно или были "тронуты" аналогично процессом, который вы выполнили, или другим процессом, все в нижней части список.

Следовательно, даже если список в вашем текущем каталоге длинный, так что начало списка больше не может быть прочитано без прокрутки, файлы, с которыми вы взаимодействовали, вероятно, будут отображаться непосредственно над вашим следующим, готовым к вводу, командная строка.

Эти параметры и многое другое находятся на странице man (manual) для команды ls:

man ls

Если вы хотите регулярно пересылать файлы в один из вышеуказанных форматов или другой по вашему выбору после чтения справочной страницы, вы можете добавить псевдоним в свой .bash_profile файл (например, используя nano чтобы открыть этот файл и сделать это, пока вы находитесь в своем домашнем каталоге).

Например, чтобы выполнить желаемый исходный плакат вопроса, откройте файл и в новой строке добавьте:

alias lss='ls -hlS'

Затем, сохранив файл и выйдя из этого окна Терминала и открыв новое окно терминала, введите "lss" в командной строке, чтобы обеспечить то, что вы обычно просматриваете при перечислении файлов.

Если вы не знаете, как использовать nano, сначала поднимите его страницу (ual), набрав

man nano

Страница man объяснит, как использовать nano.

Чтобы выйти из справочной страницы и вернуться туда, где вы можете ввести команду, нажмите клавишу "q".

Ответ 3

В приведенной ниже командной строке будут перечислены все файлы и каталоги в текущем каталоге, отсортированные по размеру (от самого большого до наименьшего). Вывод отформатирован на

ls -S -lh | awk '{print $5, $9}'