Intereting Posts

Всегда исключать путь в команде поиска

У меня есть каталог, содержимое которого никогда не должно быть найдено с помощью find, поэтому я нашел псевдоним find следующим образом:

alias find='find -not -path "*.sync*"' 

проблема в том, что find теперь жалуется, что операторы не позиционируются, когда я использую что-то вроде find -depth . Есть ли другой способ сделать это чисто?

Оператор с именем -not не существует в find . Вы имели в виду ! ? -path – это расширение, встречающееся во многих реализациях find но не во всех.

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

Общего решения для вашей проблемы не существует, поскольку вам может потребоваться добавить дополнительные аргументы find до или после пути, который необходимо исключить, в зависимости от ситуации.

Вы можете попробовать:

 find() { path=$1 shift command find "$1̈́" ! -path '*.sync' "$@" } 

но это допускает только один аргумент типа пути.