Как экспортировать только папку «Документы» в разделе / ​​HOME / <пользователи>?

find_arg передается как единственный аргумент (из-за двойных кавычек), что означает, что find пытается найти все файлы в каталоге с именем Dir! -name '* .txt'! -name '* .cpp' -print (Да, это допустимое имя каталога). Попробуйте printf '% q \ n' "$ find_arg" , чтобы увидеть фактические аргументы, переданные в find . Кроме того, если ваша оболочка поддерживает массивы, вам, вероятно, следует использовать их для хранения аргументов . И Use More Quotes ™ ! И не используйте здесь eval - find просто напечатает имена файлов.

0
30.11.2018, 22:51
1 ответ

Поскольку /etc/exportsне поддерживает подстановочные знаки, вы можете просто запустить скрипт для автоматического создания /etc/exportsсо всеми необходимыми строками. Сценарий может выглядеть так, как показано ниже, и вы даже можете запускать его ежедневно через cronjob, чтобы обновлять экспорт для добавленных или удаленных пользователей.

grep -v "^/home/.*/Documents\b" /etc/exports > /etc/exports.new
find /home/ -mindepth 2 -maxdepth 2 -type d -name Documents  \
    | sed 's/$/ *(rw,sysc,no_root_squash)/' >> /etc/exports.new
mv /etc/exports.new /etc/exports
exportfs -ra
0
28.01.2020, 04:07

Теги

Похожие вопросы