私が理解している制限では:
./filename
filename
スクリプトとして実行されます。./
現在のディレクトリを表します。
./がaの前に来ると、その効果は何ですか(ある場合)グローバル予選(フィルター):
qpdf --empty --pages ./*.pdf(nOn) -- output.pdf
この質問は、なしで実行しても./
同じ結果が出てくるようで尋ねることです。
ベストアンサー1
プレフィックス./
(またはパス)は、ダッシュで始まるファイル名がオプションと見なされないようにします。
$ touch ./-l foo bar
$ ls
bar foo -l
$ ls *
-rw-r--r-- 1 ilkkachu ilkkachu 0 Nov 3 15:10 bar
-rw-r--r-- 1 ilkkachu ilkkachu 0 Nov 3 15:10 foo
必要な問題はそれである。シェルワイルドカードを拡張し、例えばls
パラメータを見ると、-l
それがファイル名のワイルドカードから来たのか、それともユーザーが自分で作成したのかを知る方法はありません。
上記で呼び出されたファイルは長いリストに切り替わり-l
ます。ls
これらのファイル名を使用するとinvalid option
エラーが発生する可能性があります。またはコマンドがあり、rm
ファイル名が-rf
。
これは、ファイル名に対するUnixシステムの緩い態度を間違いなく「間違って」作る要因の1つに過ぎません。詳細については、David Wheelerによって書かれて記事をチェックしてください。