chemikadze 03.10.2009 01:32
Скрипты на bash — Циклы по файлам с пробелами в именах в bash
Часто бывает, что скрипт вида
1 |
|
Решение проблемы достаточно простое и лаконичное:
1 |
|
ЗЫ: в секции UNUSUAL FILENAMES мана к find сказано про ключи -ls и -fls, которые якобы должны экранировать пробелы и другие подобные символы, но у меня не заработало. Может быть кто-нибудь подкинет примерчик использования?
Любопытно, что до этого не догадался. То ли не встречал совсем, то ли недосып вчера сказался.
Если честно, конструкция с перенаправлением в while read i; была для меня маленьким отеровением -_-
Если честно, конструкция с перенаправлением в while read i; была для меня маленьким отеровением -_-
Ну это лично мой опыт. Я люблю однострочники, сложные пишу редко.
Экранирование переменных, содержащих имена файлов/каталогов, должно происходить на уровне подсознания, как само собой разумеющееся. После отбивки своими пальчиками определенного километража скриптов. :)
dir в кавычки ещё заключить. и никаких проблем ни с пробелами, ни со спецсимволами.
for i in "$(find .)"; do ls -A "$i"; done
Вполне работает. Однако жалуется на один только файл.. Непонятно чего ему надо? файл с именем personal.vcf_1. Говорит "Нет такого файла или каталога".