1文字ハイフンが特別な意味を持つシェルコマンドの例を教えて下さい
背景
UNIXのシェルスクリプトにおいて、コマンド引数に1文字だけのハイフン -
(bare hyphen) があるとき、これが特別な意味をもつときがあります。
特に、-
が「標準入力から読み込む」「標準出力に書き込む」という意味になるコマンドが多いです。
このことは、次にリンクする本家StackOverflowの質問にも書かれています。
また、"The Art of UNIX Programming" にも次のような記述を見つけました。
Many tools accept a bare hyphen, not associated with any option letter, as a pseudo-filename directing the application to read from standard input.
(http://www.faqs.org/docs/artu/ch10s05.htmlより引用)
和訳すると「多くのツールは、[a〜zのような]オプション文字列と関係がないただのハイフンを、アプリケーションが標準入力からreadすることを示す擬似ファイル名としている。」です。
しかし、いくつかのコマンドにおいては、-
がこのような意味にはなっていません。
たとえばPOSIXコマンドcd
について、cd -
は「1つ前のディレクトリに戻る」という意味になります。より厳密には、cd "$OLDPWD" && pwd
と同義です。
また、mkdir
コマンドは-
を特別扱いしておらず、(私の環境では) mkdir -
は "-" という名前のディレクトリを作成します。
質問
それでは、-
が特別扱いされているものの、stdin / stdoutへのリダイレクトとは関係がないようなコマンドは他にどのようなものがあるのでしょうか?
BSDかGNUか、POSIXか非POSIXか、builtin commandかそうでないかなどは気にしませんが、それ特有の動作の場合、追記してくださると嬉しいです。