Intereting Posts
Воспроизведение Flac в Iceweasel Почему Linux настолько хорошо масштабируется для разных аппаратных платформ? Как добавить программу с каталогом зависимостей в $ PATH? вставка в строку с помощью sed В чем разница между следующими терминами Makefile ядра: vmLinux, vmlinuz, vmlinux.bin, zimage & bzimage? lampp on Centos – невозможно остановить / запустить – / opt / lampp / bin / gettext: ошибка при загрузке разделяемых библиотек: libc.so.6 Возможно ли, чтобы DHCP назначил разные IP-адреса одному и тому же компьютеру? awk getline не работает, как ожидалось, на итерации первого цикла wget duplicate files Где Postfix хранит вложение по электронной почте? Некоторые проблемы с креплениями Как каналы ввода / вывода реализованы в ядре Linux? Как я могу запустить процесс с любым именем, которое ничего не делает? Как использовать команду «date» для отображения номера недели в году? несколько каналов в цикле, сохранение конвейерного результата в массив

Может ли команда find быть более компактной?

Посмотрите на эти две команды:

find ~/{Documents,Desktop,Downloads,Music,Videos} -mmin -120 -type f
а также
find . ! -path "*opera*" ! -path "*mozilla*" ! -path "*google-chrome*" -mmin -120 -type f

В то время как первое говорит find чтобы дать результаты, относящиеся к конкретным папкам, второе делает наоборот. Но есть ли способ сделать вторую команду более компактной или сделать ! path ! path должен предшествовать каждой папке?

ОС – Lubuntu 12.10.

Вы можете использовать GNU для find регулярных выражений (нестандартное расширение):

 find . -regextype posix-extended ! -regex '.*(opera|mozilla|google-chrome).*' 

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

Решение Chris Down – это не то же самое, что и вторая команда find потому что она не исключает ваш шаблон из подкаталогов (он все равно найдет что-то вроде ./somedir/some-mozilla-dir ).

Вышеуказанная команда не имеет этого ограничения.