найдите единственный самый большой файл

Ваш ls -la вывод указывает, что это - файл не каталог

    -drwx where d stands for directory

если его gzip архивируют затем, Вы можете gunzip это

    gunzip <filename>
4
19.05.2014, 05:08
2 ответа
[1131324] Я не знаю никакого другого способа, кроме сканирования дерева каталогов, чтобы собрать размеры файлов и определить самый большой файл. Если вы знаете, что существует пороговый размер, вы можете проинструктировать найти файлы, которые меньше этого порогового размера.[12171]Удалят любые файлы размером меньше 50MB. Если вы знаете, что эти файлы всегда находятся в определенном месте, вы можете направить ваш [1131677]find[1131678] на эту область вместо сканирования всего диска. [12172]ПРИМЕЧАНИЕ:[1131680] Это метод, который я обычно использую, так как вы не должны получать случайные файлы в каталогах не [1131681]/var[1131682], как правило.[12173] Что касается [1131683]du[1131684], вы можете сказать ему, чтобы он выводил размеры в читаемых человеком форматах с помощью переключателя [1131685]-h[1131686]. Команда [1131687]sort[1131688] также знает, как их сортировать, опять же используя свой переключатель [1131689]-h[1131690].[12174]Пример[12175]Приведенный выше [1131691]find[1131692] возвращает список файлов, которые имеют размер > 50МБ, используя в качестве разделителя нулевой ([1131693]\0[1131694]) символ. Команда [1131695]du[1131696] принимает этот список и знает, как разделить на нули, используя переключатель [1131697]--files0-from=-[1131698]. Затем этот вывод сортируется по его человеческому формату.[12176]Без [1131699]-хвоста -1[1131700]:[12177]
6
27.01.2020, 20:48
[1168159] Вам необходимо пройтись по всему дереву каталогов и проверить размер каждого файла, чтобы найти самый большой.

В zsh, благодаря [1168508]o

glob qualifier[1168511]:

Чтобы увидеть только самые большие файлы:

enter image description here

Чтобы увидеть 10 самых больших файлов:

  • Вы также можете использовать [1168512]ls -S[1168513] для сортировки файлов по размеру. Например, здесь показаны 10 самых больших файлов. В bash, вам нужно сначала запустить [1168514]shopt -s globstar[1168515], чтобы включить рекурсивный глобус с помощью [1168516]**[1168517]; в ksh93, сначала запустите [1168518]set -o globstar[1168519], а в zsh это сработает нестандартно. Это работает только в том случае, если файлов не так много, что суммарная длина их имен превышает предел командной строки.
  • Если файлов много, то сбор информации может занять очень много времени, и вы должны пройти через файловую систему только один раз и сохранить результат в текстовый файл. Так как вас интересуют отдельные файлы, используйте опцию [1168520]-S[1168521] GNU [1168522]du[1168523] в дополнение к [1168524]-a[1168525]; таким образом, отображение для каталогов не включает файлы размером в подкаталогах, а только файлы непосредственно в этом каталоге, что уменьшает шум.
  • Если вам нужен только размер файлов, вы можете воспользоваться действием GNU find [1168526]-printf[1168527].
  • Обратите внимание, что если у вас есть имена файлов, которые содержат новые строки, это испортит автоматическую обработку. Большинство утилит GNU имеют возможность использовать вместо [1168528]-0[1168529] нулевые байты (которые не могут появляться в именах файлов), например, [1168530]-z[1168531], [1168532]\0[1168533] вместо [1168534]- \n[1168535] и т.д.[1168174].
4
27.01.2020, 20:48

Теги

Похожие вопросы