Я получаю ошибку в команде follwing
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {}
ошибка:
find: missing argument to `-exec'
Необходимо отметить должностное лицо, как закончено с \;
команда была бы похожа:
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;
BTW: Вам не нужно к CD в находку dir, может взять полный путь, где искать. Так
find /opt/lampp/htdocs/EspoCRM-2.5.2/data/ -type d -exec chmod 775 {} \;
должен также работать, как находят вызов.
Необходимо закончить команду \;
Попытка это:
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;
Поскольку другие сказали, находка -exec
потребности, которые будут завершены. Однако я на самом деле предложил бы использовать +
вместо \;
. Это только работает на некоторые команды, но использование +
создаст и выполнит намного более эффективную команду.
Например, если у Вас есть три файла (a
, b
и c
) в каталоге и Вы работаете find -exec echo {} \;
это выполнится:
echo a
echo b
echo c
Однако, если Вы используете find -exec echo {} +
это динамично выберет столько же аргументов сколько поддержка сред (существует предел), и, как xargs
объединяет их в цепочку вместе... Таким образом, то, что на самом деле выполняется:
echo a b c
Как я сказал, прежде чем это будет только работать, если Ваша команда будет поддерживать несколько файлов за один раз. chmod
одно из этого. Можно сказать путем взгляда на man chmod
страница:
SYNOPSIS
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
Замещающий знак на FILE...
средства может потребоваться больше чем один файл.
Так да объединение в цепочку их всех вместе означает, что мы выполняем намного меньше экземпляров chmod
который хорош, потому что существуют вполне большие издержки (на маленьких операциях как это) для того, чтобы отвалить новую команду.
Короче говоря, использование +
быстрее.