Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

GnuUnils

Порекомендовали GNU Utils [ <<> ] Скачал. Безобразие, а не утилиты! Возьмём tar. Предположим, нам надо укатать в tar каталог template с сохранением путей. Попытаемся.

Запускаем: tar.exe --create -P --file=a.tar C:\template

Как ни странно, tar завершает работу с ошибкой. Понять почему не сложно — достаточно посмотреть что именно tar сообщает перед выходом. Смотрим. И видим, что tar считает комбинацию «\t» символом табуляции.

Какого программа, сделанная для Windows, не понимает должным образом виндовые слеши? Кстати, символов, которые с обратным слешем имеют для tar иной смысл числом пять: b,r,t,f,n.

17 комментариев
aamonster 2004

Если бы они понимали виндозные слеши — вот тогда было бы хреново. Потому как первая и главная их задача — 100% совместимости с никсовыми аналогами.

Хочешь полностью виндозный утиль — ищи именно его. Будет круто и с гуем :-)

Евгений Степанищев (bolknote.ru) 2004

Комментарий для aamonster:

а нормальная работа под операционкой, под которую это всё сунули — это опция, я так понимаю?

А с каких это пор софт под Windows стал утилем?

mivlad 2004

Она не сделана для Windows, а собрана под.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для mivlad:

а зачем делать половину работы?

cax 2004

Ну так возьми да поправь, сорсы есть, кто ж тебе мешает ?

Вот у меня заморочка похуже была — надо было создать tar-архив, который SunOS-ным стандартным tar раскрылся бы ( а не GNU-сным gtar), и делать это на виндах, давая файлам exec permissions по ходу дела.

Пришлось ковыряться в исходниках и пересобрать star на cygwin …

Евгений Степанищев (bolknote.ru) 2004

Комментарий для cax:

а оно мне надо? спрашивает только для чего надо было делать половину работы.

iceman 2004

со слэшамибэкслешами всегда траблы были в утилах портированных под винды.
да и нах переписывать все исходники из-за какого-то слэша.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для iceman:

нах тогда вообще было делать половину работы?

mivlad 2004

Какой именно работы?

Wizard_in_blacK 2004

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

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Wizard_in_blacK:

rar его прекрасно распакует.

di 2004

Какая ещё половина работы??
Если тебе потребуется ввести символ табуляции, а t не будет считаться таковым, что ты станешь делать?
Кстати, что мешает использовать в виндузе не бэк-, а нормальный слэш? Он вроде бы почти везде работает, кроме некоторых команднострочных команд, не переписанных видимо, со времён доса (команда copy и иже с нею).
Ещё раз кстати, а // пробовал? :)

Евгений Степанищев (bolknote.ru) 2004

Комментарий для di:

В винде мне не может потребоваться ввести вместо пути символ табуляции. По поводу второго вопроса смотри последующий пост. Два _обратных_ слеша я пробовал — работают. Только экранировать нужно именно спецсимволы — иначе возникают глюки.

detail 2004

А второй слэш дописывать пробовал?

Евгений Степанищев (bolknote.ru) 2004

Комментарий для detail:

Пробовал. Работает. Причём его надо дописывать именно перед этим символами. Но я же не об этом говорю. Ни одна виндовая консольная программа не требует ещё одного слеша перед t.

NKritsky 2004

Это ещё што.
А вот как ведёт себя _микрософтовский_ компилятор на _микрософтовской_ ОС.

Первый запуск:
e:temp3ml
usage: ML [ options ] filelist [ /link linkoptions]
Run «ML /help» or «ML /?» for more info

ОК, просим хелпу:
e:temp3ml /?
MASM : warning A4018: invalid command-line option : /2
MASM : fatal error A1017: missing source filename

?!!! Не понял…
Ответ прост — опция /? почему-то проходит процедуру «dewildcardization», а так как у меня есть фолдер e:2 то это мы и получаем в результате. Парадокс? Нет — просто глупость.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для NKritsky:

хехехехеееее :)))