Сортировка файлов в каталоге рекурсивно по дате последнего изменения
Я изменил много файлов в своем каталоге и хочу узнать, что это за файлы, отсортировав их по дате последнего изменения, и поэтому я хочу, чтобы некоторые расширения были исключены
в каталоге svn у меня тоже есть много файлов .svn, которые я не хочу показывать в сортировке
Ответы:
даст вам что-то вроде
источник
find -not -iname '*.ext'
.Если вы хотите сгладить структуру каталогов (таким образом, сортируя по дате по всем файлам во всех каталогах, игнорируя, в каком каталоге они находятся),
find
рекомендуется использовать -approach, предложенный @yeti. Если вы хотите сохранить структуру каталогов, вы можете попробоватькоторый сортирует каталог на основе.
источник
В bash беги
shopt -s globstar
первым. В ksh93 запускайset -o globstar
первым. В zsh вы уже настроены.Это вернет ошибку, если у вас так много файлов, что превышено ограничение длины командной строки в вашей системе. В zsh вы можете использовать это вместо:
источник
Предполагая, что вы обычно используете GNU, попробуйте:
источник
find
«s-printf
возможность избежать вызова отдельного процесса (или несколько, в зависимости от количества файлов). Смотрите мой ответ для примера.stat
шанс и показать-exec ... +
. В самом деле! Иногда я думаю,stat
заслуживает большего внимания ... и никто не должен брать рецепты отсюда, не читая об ингредиентах и не думая о последствиях ...-printf
...find
его нет-printf
, вы можете использовать-exec sh -c 'printf...'
большую часть той же функциональности. Это также включает доступ к$(pwd)
полностью определенным путям.stat
. Поэтому иногда я просто хочу обратить внимание наstat
... Я думаю, чтоstat
заслуживает этого ...Чтобы надежно перечислить имена файлов только с использованием последних инструментов GNU:
источник
Это позволяет избежать проблем со списком аргументов, поскольку единственный аргумент,
ls
который когда-либо получит, - это имя каталога, который вы хотите перечислить. Вы можете сделать это с чем угодно.Оболочка просто как сценарий оболочки - это тот же процесс , и не имеет проблем , вы можете столкнуться при вызове.
. sources
|pipe
execve
В любом случае - вышеперечисленное идет только на три глубины, которые можно изменить, изменив
maxdepth
. Это также глубоко во-первых, так что вы работаете в обратном направлении в ваш текущий каталог изdepth
.Вы можете заметить, что вы также получаете
$LSCOLORS
- на моей машине он также предоставляет аккуратно напечатанные столбцы и все остальное, что вы хотели быls
- или, в этом отношении, все, что вы можете себе представить, что вы хотите сделать с. source.
НЕТ СВН
Опять же, это будет делать все, что вы ожидаете
ls
. Так что скрыть.svn
файлы так же просто, как изменитьls
строку на:Или, если вы хотите видеть
svn
расширения в каждой папке, НО./svn
вы можете изменить ее так, чтобы вся команда выглядела так:Лично мне это нравится с ls
-s
и, если хотите,-u
будет сортировать по времени доступа, а не по времени мода.источник
В этом списке будет указан олл-
files
ин<dir>
с самым старшим из самых старых модифицированныхИ с этим последнее изменение является самым главным
Обратите внимание, что это работает только в том случае, если список имен файлов не превышает предельное значение общей длины командной строки в вашей системе.
источник
xargs -0
в виду (в обоих случаях).xargs -print0
эквивалентноxargs -p -r -i -n -t -0
илиxargs -inprt0
илиxargs -0ntrip
, что, вероятно, не то, что вы имели в виду.