tar має 3 типи синтаксису (відповідно до цього ):
- довгі параметри (--file)
- короткі варіанти (-f)
- старі варіанти (f)
Для синтаксису старого варіанту всі літери повинні відповідати "дьогтю" і всі вони повинні потрапляти в одну групу без пробілів. Порядок листів насправді не має значення, доки аргументи цих листів слідують за тим самим порядком після збору варіантів.
Цей старий спосіб написання опцій смоли може здивувати навіть досвідчених користувачів. Наприклад, дві команди:
# tar cfz archive.tar.gz file
# tar -cfz archive.tar.gz file
зовсім інші. Перший приклад використовує 'archive.tar.gz' як значення для параметра 'f' і розпізнає варіант 'z'. Однак другий приклад використовує "z" як значення для параметра "f" - можливо, не те, що було призначено.
Старі параметри зберігаються для сумісності зі старими версіями смоли.
Команда з "-" еквівалентна
tar -czf archive.tar.gz file
tar -cf archive.tar.gz -z file
tar cf archive.tar.gz -z file
Ось чому ваша приклад працює без знаків "-", а не з "-"