Warum benötigt der Befehl ls vor den Parametern einen Bindestrich, für den Befehl tar ist der Bindestrich jedoch optional?

557
Dianne

Ich bin neu bei Ubuntu und versuche die Befehlszeile zu verstehen.

Wenn ich den Inhalt einer TAR-Datei sehen möchte, verwende ich:

tar tf tarfile.tar

Wenn ich jedoch eine Liste aller Dateien sehen möchte, wenn ich verwende:

ls ein Dateiname

Es sagt:

ls: kann nicht auf eine: eine solche Datei oder ein solches Verzeichnis zugreifen

Warum das?

Warum ist das Minuszeichen "-" für einen Befehl und nicht für den anderen Befehl erforderlich?

4
Titel und Fragentext stimmen nicht überein. Der Titel fragt, warum es falsch ist, "-t" mit "tar" zu verwenden (A: Nein, moderne Versionen von "tar" akzeptieren "-t"). Der Fragekörper fragt das Gegenteil (warum es falsch ist, das "-" für Optionen für andere Programme wegzulassen). jamesdlin vor 9 Jahren 1
[Obligatorisches xkcd] (http://xkcd.com/1168/). Martin Schröder vor 9 Jahren 1

1 Antwort auf die Frage

8
Marianna

Der Befehl tar ist einer der ältesten Befehle in * nix. Es wurde vor langer Zeit für Bandarchive erstellt, in denen Daten auf Bandlaufwerken gespeichert wurden.

Beim Schreiben des Dienstprogramms wurde der derzeitige Standard, einen Bindestrich zu setzen, um anzuzeigen, dass ein Parameter noch nicht erfunden wurde.

Es ist optional für tar, aber für fast alle anderen Befehle obligatorisch.

[Hier ist eine ähnliche Antwort auf dieselbe Frage.] (Http://unix.stackexchange.com/questions/13573/why-use-superflous-dash-to-pass-option-flags-to-tar) Adam vor 9 Jahren 0