Если вы не можете дисциплинировать себя, чтобы использовать find
'правильно', то почему бы не установить GNU find
(из findutils
) в каталог в вашем PATH перед системной командой find
.
Раньше у меня был свой собственный вариант cp
, который копировал файлы в текущий каталог, если последний элемент в списке не был каталогом. Я много лет хранил это в своем личном каталоге bin
, но в конце концов удалил его, потому что больше не использовал эту функциональность. (Мой «cp.sh» был написан в 1987 году и дважды редактировался, в 1990 и 1997 годах, как часть изменений в нотации системы контроля версий. Я думаю, что я удалил его около 1998 года. Основная проблема со сценарием заключается в том, что неоднозначно между копированием файла поверх другого и копированием двух файлов в текущий каталог.)
Подумайте над тем, чтобы написать свою собственную обертку для find
:
#!/bin/sh
[ ! -d "$1" ] && set -- . "$@"
exec /usr/bin/find "$@"
Во второй строке написано: «если аргумент 1 не является каталогом, то отрегулируйте аргументы командной строки, добавив точку перед остальной частью команды. Это будет сбивать с толку, если вы введете:
~/bin/find /non-existent/directory -name '*.plist' -print
потому что несуществующий каталог не является каталогом, и сценарий добавит точку в командную строку - причина, по которой я перестал использовать свою личную команду cp
.