"tar czf file.tar.gz dirname" или "tar -czf file.tar.gz dirname"? - PullRequest
5 голосов
/ 19 декабря 2010

Я всегда использую tar czf file.tar.gz dirname вместо tar -czf file.tar.gz dirname (без -), потому что быстрее

Я знаю ... из документации, что я делаю неправильно.

Но каков эффект моей команды?

(до сих пор я не вижу проблем в моей команде ... иногда я думаю, почему в документации предлагается tar -czf file.tar.gz dirname вместо tar czf file.tar.gz dirname?)

Ответы [ 3 ]

3 голосов
/ 19 декабря 2010

Это все на информационных страницах:

«Как короткие варианты,« старые опции »- это отдельные буквы.Однако старые параметры должны быть записаны вместе как единый набор [...] сгруппированных элементов. Этот синтаксис старого стиля затрудняет сопоставление букв параметров с их соответствующими аргументами и часто приводит к путанице.В команде tar cvbf 20 /dev/rmt0, например, 20 является аргументом для -b, /dev/rmt0 является аргументом для -f, а -v не имеет соответствующего аргумента.Даже использование коротких опций, таких как tar -c -v -b 20 -f /dev/rmt0, более понятно, если поместить все аргументы рядом с опцией, к которой они относятся. ”

И вы не хотите путать своих пользователей, не так ли?

0 голосов
/ 12 июля 2018

, хотя @ user502515 прав, я всегда использую tar cvf, и я надеюсь, что @Captain все еще использует его. Это чище, и если некоторые пользователи находят это в замешательстве, они могут пойти man tar и изучить его. Я принимаю, что новый синтаксис более явный, но старый красивый и, кроме того, интересно использовать синтаксис с 1979 года.

0 голосов
/ 19 декабря 2010
$ man tar 

Формат связанных аргументов поддерживается для совместимости с историческими реализациями .Он состоит из начального слова (без начального символа), в котором каждый символ указывает на опцию.Аргументы следуют как отдельные слова.Порядок аргументов должен соответствовать порядку соответствующих символов в объединенном командном слове.Например,

  tar tbf 32 file.tar

указывает три флага t, b и f.Оба флага b и f требуют аргументов, поэтому в командной строке должно быть два дополнительных элемента.32 является аргументом флага b, а file.tar является аргументом флага f.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...