Я пытаюсь получить файлы старше нескольких дней и перечислить их в порядке убывания на основе их размера со всей их информацией (размер, полный путь и т. Д. - что-то похожее, что обеспечивается ls
).
Хотя я могу найти файлы старше с:
find . -mtime +10
Я не могу перечислить желаемую информацию.
Ответы:
При условии, что ваши пути к файлам не содержат символов новой строки:
Смотрите
find
руководство , разделActions
.%s
Размер файла в байтах.%n
Количество жестких ссылок на файл.%m
Биты разрешения файла (в восьмеричном ).%u
Имя пользователя файла или числовой идентификатор пользователя, если у пользователя нет имени.%g
Имя группы файла или числовой идентификатор группы, если у группы нет имени.%t
Время последнего изменения файла в формате, возвращаемомctime
функцией C.%p
Имя файла%l
Объект символической ссылки (пустая строка, если файл не является символической ссылкой).КСТАТИ: Обратите внимание, что руководство POSIX
find
не определяет большинство из вышеуказанных действий.источник
Эта команда использует только POSIX особенности
find
и изls
:Однако он может вызываться
ls
несколько раз, если в текущем каталоге (или подкаталогах) очень большое количество файлов, соответствующих-mtime +10
первичному.ls
Конечно, если вызов вызывается более одного раза, сортировка будет выполняться только при каждомls
выполнении, а не по нескольким.Тем не менее, для разумного количества файлов, это, вероятно, ваш лучший выбор.
источник
ls
передается только один аргумент, он может выполнить небольшую сортировку. С+
вместо;
, это было бы лучше, ноls
все еще может в конечном итоге вызывается несколько раз , если есть много файлов.С
zsh
:Или чтобы избежать двойной сортировки (по имени по zsh и по размеру по ls):
или (если ваша
ls
поддержка не-U
отсортирована):Добавьте
D
спецификатор glob, если вы хотите видеть скрытые файлы.источник
zargs
.Я думаю, что вы могли бы сделать что-то похожее на:
обратите внимание на
-S
параметрls
команды:источник
/home/phphil
. Попробуйтеls -ld ...
find . -type f
вместо?find ... -type f
будет работать, как если бы добавив-d
флаг кls
попробуй это:
источник
Для облегчения использования одной строки вы можете использовать эту
find
опцию-ls
. Похоже, что в большинстве случаев размер файла находится в седьмом столбце перечисленной информации (поэтому, если нет, измените его7
в конце команды):источник
Другой вариант будет использовать:
Вот команда:
источник