[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cmp: имя файла с -



Vladimir Zolotykh -> debian-russian@lists.debian.org  @ Sun, 23 Jul 2006 14:38:55 +0300:

 VZ> Вот такая команда 

 VZ>   for f in /media/cdrom0/*; do cmp "$f" ./$(basename "$f"); done

 VZ> не работает из-за того, что имена файлов на CD содержат пробелы и знаки -
 VZ> Ошибки приблизительно такие

 VZ>   cmp: invalid --ignore-initial value `-'
 VZ>   ....

 VZ> Почитал man cmp, но там на эту тему не нашёл ничего.

 VZ> Можно ли как-то все-таки использовать cmp в таком контексте ?

 VZ> Существует ли какой-то универсальный способ для решения таких
 VZ> случаев, имею ввиду для всех утилит, а не для каждой в отдельности ?

 VZ> Using Sarge

Вообще-то от минусов полное имя всегда помогало.  Другое дело - если
шелл используется такой, который при наличии файла с пробелом в имени
раскрывает его в шаблоне после in в несколько слов, что менее вероятно,
или, что более вероятно, делит на слова результат $(basename "$f").  ``
(а $(), кажется, ему эквивалентно) делает именно так.  Соответственно,
нужен второй уровень квотинга.  Или, что более логично в данном случае,
заменить $(basename "$f") на "$f:t". 

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
	Игус в <Pine.LNX.4.44.0401231840020.15582-100000@moon>



Reply to: