Я начинаю скрипты bash, и я не могу обрабатывать заданное имя файла. Я искал другие вопросы о моей проблеме здесь, как:Понимание (множественное и автоматическое) имя файла, цитируемое
how to output file names surrounded with quotes in SINGLE line?
В моем сценарии я должен принять все directorys, конец для каждого из них делать какую-то работу. Таким образом, скелет моего сценария:
for directory in `find "$DIR" -type d`
do
# ... some work ...
done
Этот скрипт не работает с разнесенным именем файла. Поэтому я попытался использовать find в сочетании с exec, что кажется элегантным и простым решением, но ничего не изменилось. Точнее я попробовал:
(I) find "$DIR" -type d -exec echo -n '"{}" ' \;
(II) find "$DIR" -type d -exec echo -n '"{}" ' +
Перед использованием команды -exec я прочитал что-то об этом, но что-то до сих пор не ясно для меня, так:
- Что и как работает «{}" '\;
- Что и как работает? "{}" '+
- Как я могу исправить свой скрипт также для разнесенного имени файла?
См. Предыдущие ответы [здесь] (http://stackoverflow.com/questions/7039130/bash-iterate-over-list-of-files-with-spaces#7039579) и [здесь] (http: // stackoverflow .com/вопросы/1116992/захватывая-выход-оф-найти-print0-в-а-баш-массива # 1120952). –
Ссылки @GordonDavisson содержат ответы на вашу проблему. Просто прочитайте это. –