現在のディレクトリを表すドット文字はいつ省略できますか?

現在のディレクトリを表すドット文字はいつ省略できますか?

ディレクトリにアクセスするために現在のディレクトリを表すためにドットを使用する必要がありますか、それともファイルにのみ使用する必要がありますか?

たとえば、現在のディレクトリにディレクトリとファイルがfoo含まれている場合は、いつポイント文字を省略できますか?barbaz.txt

./bar
./baz.txt

ベストアンサー1

ファイルパスが必要な場合は、./foo書き込みを使用できるfoo場所はわずか数箇所です。./foo

./foo書き込みは、予想されるパスが必ずしもパスではなく、検索パスにあるファイル名である場合に便利です。最も一般的な状況は、実行可能なコマンドを呼び出すときです。リストされたディレクトリで実行可能なプログラムを検索するPATH変えるただし、この照会は、指定されたコマンド名にスラッシュが含まれていない場合にのみ実行されます。したがって、PATH(通常)のコマンドをls呼び出すと、現在のディレクトリで実行可能なプログラムが呼び出されます。より一般的には、書き込みは名前のシェルエイリアス、関数、または組み込み機能も無視します。ls/bin/ls./lsls./foofoo

プレフィックスのもう1つの用途./は、特定の特殊文字で始まるファイル名に関する問題を回避することです。特に、ファイル名をコマンドに引数として渡す場合、ほとんどの場合、コマンド-はで始まる場合、誤って解釈された-オプション。ただし、これは相対パス(つまり、次に始まらない)の場合にのみ機能します。ファイル名を保護するもう1つのより一般的な方法は、ファイル名をコマンドラインに配置することです。 (通常、次のものがオプションではなく引数であることを示します。)(ただし、これが特定の場合に常に機能するわけではありません。そうであれば、多くのコマンドは次のことを意味します。「標準入力」)。このトピックについては、以下を参照してください。"./$filename""$filename"-$filename/--mycommand -- "$filename"--$filename-スペースやその他の特殊文字が原因でシェルスクリプトが停止するのはなぜですか?そしてbash / POSIXシェルで変数を引用することを忘れてしまうセキュリティリスク

おすすめ記事