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: