Почему команда ls требует тире перед своими параметрами, а для команды tar тире необязательна?

496
Dianne

Я новичок в Ubuntu и изо всех сил пытаюсь понять командную строку.

Когда я хочу увидеть содержимое файла tar, я использую:

tar tf tarfile.tar

Но когда я хочу увидеть список всех файлов, если я использую:

имя файла

Это говорит:

ls: не может получить доступ к: нет такого файла или каталога

Это почему?

Почему знак минус "-" требуется для одной команды, а не для другой?

4
Заголовок и тело вопроса не совпадают. Заголовок спрашивает, почему неправильно использовать `-t` с` tar` (A: Это не так; современные версии `tar` принимают` -t`). Тело вопроса задает обратное (почему неправильно опускать `-` для опций других программ). jamesdlin 9 лет назад 1
[Обязательный xkcd] (http://xkcd.com/1168/). Martin Schröder 9 лет назад 1

1 ответ на вопрос

8
Marianna

The tar command is one of the oldest commands in *nix. It was created long long ago to do tape archives where data was stored on tape drives.

When the utility was written, the current standard of putting a dash to indicate a parameter was not yet invented.

It is optional for tar, but mandatory for almost every other command.

[Вот аналогичный ответ на тот же вопрос.] (Http://unix.stackexchange.com/questions/13573/why-use-superflous-dash-to-pass-option-flags-to-tar) Adam 9 лет назад 0

Похожие вопросы