LINUX.ORG.RU

tar -x


0

2
# tar -xfvz tarball.tar.gz
tar: vz: Cannot open: No such file or directory

Почему? Ткните носом в место в мане, где регламентирован порядок vzf

★★★★★

В мане. После -f должно быть имя файла.

NeverLoved ★★★★★
()

Думаю, дело в том, что так работает getopt (вот в варианте, который во фряхе называется bundled-args, порядок неважен — tar xfvz tarball.tar.gz работает).

LeninGad
()
Ответ на: комментарий от Gotf

Знаю, но всю сознательную жизнь думал, что GNU tar умеет выдернуть имя файла, если остальные опции без аргументов (иначе зачем он такой жирный? :)

buddhist ★★★★★
() автор топика
Последнее исправление: buddhist (всего исправлений: 1)

В мане явного указания нет. Есть в tar.info:

`--file=ARCHIVE-NAME'
`-f ARCHIVE-NAME'
     Name the archive to create or operate on.  Use in conjunction with
     any operation.

   For example, in this `tar' command,

     $ tar -cvf collection.tar blues folk jazz

`collection.tar' is the name of the archive.  It must directly follow
the `-f' option, since whatever directly follows `-f' _will_ end up
naming the archive.

Бывает, что и «маны всемогущие» не дают полной информации о некоторых тонкостях. :-)

PS: Цитата взята из раздела 6.1. Choosing and Naming Archive Files

DeVliegendeHollander ★★
()
Последнее исправление: DeVliegendeHollander (всего исправлений: 1)
Ответ на: комментарий от buddhist

Мне кажется, это было бы слишком неочевидным поведением. Если параметр требует значения, то оно должно следовать сразу, а не где-то там. Причём это в большинстве нормальных программ так, но ругают почему-то именно tar %)

Gotf ★★★
()
Ответ на: комментарий от fmdw

Так ты его небось без libastral собрал.

На самом деле, то, что он говорит, было бы логично. tar ведь знает, с аргументами у него опции или без. Да и потом, разве кто-то использует -f<имя_архива_сразу_без_пробела>?

proud_anon ★★★★★
()
Ответ на: комментарий от Gotf

Если параметр требует значения, то оно должно следовать сразу, а не где-то там. Причём это в большинстве нормальных программ так

Полностью поддерживаю. Пара 'параметр значение' изначально была стандартом де факто. Я думал, что все уже привыкли к этому. Оказывается, ещё не все. :-)

DeVliegendeHollander ★★
()
Ответ на: комментарий от Gotf

Причём это в большинстве нормальных программ так, но ругают почему-то именно tar

Потому что все остальные программы, а особенно все остальные архиваторы, обычно вызываются по схеме

<команда> <опции> <имена файлов, с которыми надо работать>
И они как-то сами понимают, где имена файлов и что именно с ними надо сделать. tar — это, пожалуй, самая часто употребляемая программа, в которой имя файла — это аргумент к опции (поскольку чаще всего tar применяют именно для распаковкм). И единственный из популярных архиваторов с такой фигнёй.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от proud_anon

tar ведь знает, с аргументами у него опции или без.

tar -cfz foo bar quux

Какой из этих файлов должен быть выходным? Первый? А может последний?

fmdw
()
Ответ на: комментарий от proud_anon

Зато таром можно затарить бекап прямо на раздел без фс.

nanoolinux ★★★★
()
Ответ на: комментарий от proud_anon

И единственный из популярных архиваторов с такой фигнёй.

У tar изначально был единственный целевой «файл» — накопитель с магнитной лентой. Он же TAPE ARchiver. А опция -f file_name появилась позже, так что это в некотором роде «костыль». :-)

DeVliegendeHollander ★★
()
Ответ на: комментарий от anonymous

используют, как и -fsdfsdzxc вместо -f -s ...

Не-не-не. Если ты напишешь -f -s, то tar решит, что это "-s" — это имя архива. Если ты напишешь -fsdfsdzxc, tar решит, что sdfsdzxc — это имя архива. В том и проблема при таких сочетаниях опций.

proud_anon ★★★★★
()
Ответ на: комментарий от fmdw

Какой из этих файлов должен быть выходным? Первый? А может последний?

Я считаю, что первый, потому что так работают zip и 7z. gzip, bzip2 и xz по умолчанию запаковывают файлы по отдельности, что для rar'а неактуально. Но проблема в том, что rar'ом чаще всего именно распаковывают, а тут все архиваторы работают однозначно, кроме tar'а.

proud_anon ★★★★★
()
Ответ на: комментарий от DeVliegendeHollander

У tar изначально был единственный целевой «файл» — накопитель с магнитной лентой. Он же TAPE ARchiver.

Да, конечно, не из пальца высосали, но от этого людям не легче.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

но от этого людям не легче.

Большая сложность в том, чтобы ключ -f всегда писать последним, а после него сразу имя архива??? Ннн-дэээ...разбаловали юзеров :-)

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

Ннн-дэээ...разбаловали юзеров :-)

Это как низкий дверной проём. Если у тебя в доме проём чуть ниже твоего роста, то ты об него рано или поздно обязательно стукнешься. И твои размышления про «ничего сложного в том, чтобы слегка наклониться» из тебя вышибет.

proud_anon ★★★★★
()
Ответ на: комментарий от Gotf

в большинстве нормальных программ так, но ругают почему-то именно tar

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

buddhist ★★★★★
() автор топика
Ответ на: комментарий от proud_anon

Когда пользуюсь tar-ом, не задумываясь на автомате всегда пишу f в самом конце (разумеется, если требуется имя файла, а это 999 случаев из 1000).

То есть по твоей аналогии, я не размышляю, а на автомате «слегка наклоняюсь» — это почти рефлекс. И уже лет 20 с лишком хожу и об ключ f в tar-е не стукаюсь. :-)

Если кому-то приходится «размышлять, чтобы не стукнуться», то могу только посочувствовать. :-)

DeVliegendeHollander ★★
()
Ответ на: комментарий от anonymous

Лучше быть собачкой Павлова, чем анонимной шавкой из-под лавки, тявкающей не по делу.

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

У tar изначально был единственный целевой «файл» — накопитель с магнитной лентой

Это точно? А то я не могу найти ″UNIX PROGRAMMER'S MANUAL″ для шестой версии AT&T UNIX (1975), где, вроде как, появился ″tar″.

В предыдущих версиях вместо ″tar″ был ″tap″, а в седьмой версии (1979) tar уже мог работать с файлом.

mky ★★★★★
()

man tar, криворукое.

anonymous
()

Почему?

tar — утилита с древней историей, у неё есть традиционный синтаксис, tar xfvz, без дефиса. Вот без дефиса порядок не имеет значения, а дефис включает правила getopt.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Вот без дефиса порядок не имеет значения

О как. Я не знал, всегда соблюдал порядок. Наверно, потому, что при знакомстве с tar он был для меня лишь чуть более понятным, чем dd.

Gotf ★★★
()
Ответ на: комментарий от Gotf

★★★★★
не знает о параметре «f»

Однако!

Может человек свои звёзды за что-нибудь другое получил.

anonymous
()

Ткните носом в место в мане, где регламентирован порядок vzf
tar -xfvz tarball.tar.gz

может лучше ткнуть тебя в учебники по пониманию информации?


tar -x -f tarball.tar.gz -v -z

так понятнее?

q11q11 ★★★★★
()
Ответ на: комментарий от anonymous

Может человек свои звёзды за что-нибудь другое получил.

Кто тачку насосал, кто брюлики, а кто - «звёзды» на ЛОРе.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.