Online video hd

Смотреть 365 видео

Официальный сайт fresher 24/7/365

Смотреть видео бесплатно

chemikadze 03.10.2009 01:32

Скрипты на bashЦиклы по файлам с пробелами в именах в bash

Часто бывает, что скрипт вида
1
2
3
4
for i in $(find . -mindepth 2 -maxdepth 2);
do
something;
done

не срабатывает как хотелось бы из-за файлов с пробелом в имени. Проблема эта стара как мир и люди знающие сразу скажут что делать в таких случаях, но новичку думаю будет полезно.

Решение проблемы достаточно простое и лаконичное:
1
2
3
4
find . -mindepth 2 -maxdepth 2 | while read i; 
do
something;
done



ЗЫ: в секции UNUSUAL FILENAMES мана к find сказано про ключи -ls и -fls, которые якобы должны экранировать пробелы и другие подобные символы, но у меня не заработало. Может быть кто-нибудь подкинет примерчик использования?


Тэги: bash tips
+ 3 -
Похожие Поделиться

Kraplax 03.10.2009 04:17 #
+ 3 -
А я думал что решением тут будет взять в кавычки и команду нахождения списка файлов в цикле, и саму переменную i при ее упоминании в теле цикла:
for i in "$(find .)"; do ls -A "$i"; done
Вполне работает. Однако жалуется на один только файл.. Непонятно чего ему надо? файл с именем personal.vcf_1. Говорит "Нет такого файла или каталога".
chemikadze 03.10.2009 07:44 #
+ 0 -
Любопытно, что до этого не догадался. То ли не встречал совсем, то ли недосып вчера сказался.

Если честно, конструкция с перенаправлением в while read i; была для меня маленьким отеровением -_-
deFINE 15.08.2011 16:05 #
+ 0 -
Все гениальное просто!
Я до этого тоже не додумался.
yuretsz 03.10.2009 05:47 #
+ 2 -
Обычно у меня все делается так:
find . -exec file {} \;
chemikadze 03.10.2009 07:28 #
+ 0 -
А если скрипт сложный?
yuretsz 03.10.2009 11:46 #
+ 0 -
Ну это лично мой опыт. Я люблю однострочники, сложные пишу редко.
muhas 03.10.2009 12:41 #
+ 2 -
Б таком случае вызываем функцию в екзец и файл параметром к ней:)
razum2um 03.10.2009 09:33 #
+ 2 -
из-за файлов с пробелом в имени

омг
зачастило...Тыц, тыц
iglezz 03.10.2009 12:25 #
+ 2 -
Экранирование переменных, содержащих имена файлов/каталогов, должно происходить на уровне подсознания, как само собой разумеющееся. После отбивки своими пальчиками определенного километража скриптов. :)
chemikadze 03.10.2009 13:18 #
+ 0 -
мда, неудобно получилось =/
derfenix 03.10.2009 10:20 #
+ -1 -
find ./ |while read dir; do command_name_or_script dir; done
derfenix 03.10.2009 10:24 #
+ 0 -
dir в кавычки ещё заключить. и никаких проблем ни с пробелами, ни со спецсимволами.
iglezz 03.10.2009 12:16 #
+ 0 -
моя любимая комбинация в скриптах :)
kstep 21.10.2009 04:57 #
+ 1 -
find . blablabla -print0 | xargs -0 blablabla
спасёт отцов русской демократии

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн