Пакет называют cifs-utils
, это обеспечивает mount.cifs
вместо mount.smbfs
.
Как @njsg уже сказал, проблема вызывается find
, не оболочка: двойные кавычки, которые Вы используете, уже защищают Ваше выражение от оболочки; это передается find
неизмененный.
Проблема - это find
рассматривает аргумент -name
и -iname
как шаблон. Единственный способ подавить, который должен был бы использовать a find
опция, которая не рассматривает ее аргумент как шаблон. Но find
не имеет такой вещи, согласно моей странице руководства, поэтому что Вы хотите, не может быть сделан. Лучшее, которое можно сделать, улучшают сценарий, чтобы выйти из скобок автоматически, прежде, чем передать их find
. Следующий забавно выглядящий sed
замена сделает это для Вас:
echo "foo [bar]" | sed 's/[][]/\\&/g'
Распечатает: foo \[bar\]
Проблема не с оболочкой, а с находкой. Аргумент -name
и -iname
сам шаблон. [bar]
будет означать b
, a
или r
кому: find
. Попытка, просто выходящая из квадратных скобок, который является:
find . -iname "foo \[bar\]"
(Редактирование: С этим Вы не выходите из них на уровне оболочки, но передаете обратные косые черты find
.)
find
поддержки это. И, от того, какому сказанному @alexis, это не кажется. Я действительно предложил бы sed идею alexi.
– njsg
09.12.2013, 01:41
Можно использовать одинарные кавычки для предотвращения расширения.
find . -iname 'foo [bar]'