Порядок файлов, сообщаемый find
, непрозрачен для пользователя. Это может быть порядок их появления в каталоге. Некоторые find
реализации переупорядочивают их по номеру инода или другим критериям в попытке улучшить производительность. Единственный способ изменить порядок — это использовать предикат -depth
, который указывает find
обрабатывать/выводить листья перед ветвью, на которой они находятся.
В качестве альтернативы find
вы можете использовать zsh
функцию рекурсивного глобуса:
zgrep whatever./**/*.gz(D.Om)
Квалификатор Om
glob предназначен для сортировки по последнему -времени модификации (самому старому сначала ). .
предназначен только для обычных файлов -(эквивалент find
's -type f
), D
должен включать скрытые (файлы с точками ), как find
по умолчанию.
Если вы получаете слишком длинный список аргументов , вы можете использоватьzargs
:
autoload -U zargs # best in ~/.zshrc
zargs./**/*.gz(D.Om) -- zgrep whatever
Сbash
(или любой оболочкой, поддерживающей подстановку процессов в стиле Ksh -)и последними инструментами GNU, эквивалентом будет:
xargs -r0a <(
export LC_ALL=C
find. -type f -name '*.gz' -printf '%T@\t%p\0' |
sort -zn | cut -zf2-) zgrep whatever
dbus-send --type=method_call --print-reply --dest=org.Cinnamon \
/org/Cinnamon org.Cinnamon.Eval string:'global.reexec_self()'
Эквивалент gnome см. в Как перезапустить Gnome...(Ubuntu ). Модифицировано для этого случая (Fedora+Cinnamon )с некоторой помощью комментариев после ALT+F2,"r"