GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwendung von Dash (-) anstelle eines Dateinamens?

Für einen Befehl, wenn - verwendet wird als Argument anstelle eines Dateinamens bedeutet STDIN oder STDOUT.

  1. Aber in diesem Beispiel wird eine Datei mit dem Namen - erstellt :

    echo hello > -
    

    Wie kann ich - machen in diesem Beispiel STDOUT?

  2. Umgekehrt, wie kann ich - machen bedeutet eine Datei namens - in Beispielen wie:

    cat -
    

Akzeptierte Antwort:

Mit - als Dateiname stdin/stdout zu bedeuten, ist eine Konvention, die viele Programme verwenden. Es ist keine besondere Eigenschaft des Dateinamens. Der Kernel erkennt - nicht ebenso besonders alle Systemaufrufe, die sich auf - beziehen als Dateiname wird - verwendet wörtlich als Dateiname.

Mit Bash-Umleitung - wird nicht als spezieller Dateiname erkannt, daher verwendet Bash diesen als wörtlichen Dateinamen.

Wenn cat sieht die Zeichenkette - als Dateiname wird er als Synonym für stdin behandelt. Um dies zu umgehen, müssen Sie die Zeichenfolge cat ändern sieht so, dass es immer noch auf eine Datei namens - verweist . Üblicherweise wird dem Dateinamen ein Pfad vorangestellt – ./- , oder /home/Tim/- . Diese Technik wird auch verwendet, um ähnliche Probleme zu umgehen, bei denen Befehlszeilenoptionen mit Dateinamen kollidieren, also eine Datei, die als ./-e bezeichnet wird erscheint nicht als -e Befehlszeilenoption für ein Programm, zum Beispiel.


Linux
  1. Linux – Echte Speichernutzung?

  2. Messung der RAM-Nutzung eines Programms?

  3. Kein Dash, kein Launcher in Ubuntu 14.10?

  4. cPanel – Bandbreitennutzung

  5. cPanel – Festplattennutzung

Linux-Speichernutzung

Linux-df-Befehl

Wie kann ich die Speichernutzung profilieren?

Was ist usage() im Shell-Scripting?

Verwendung von Platzhaltern unter Linux in cp und mv

Speicherauslastung des TOP-Befehls