hello2
現在、作業ディレクトリにはバイナリファイルがあります。
これを実行するには、それを押す必要があり、./hello2
出力が表示されます。
ただし、次のコマンドを使用しても././hello2
機能します。
シェルがこのコマンドをどのように解釈するかを説明してください。
ベストアンサー1
コマンド実行時
$ ./hello2
hello2
シェルはディレクトリ内のファイルを探します.
。現在の目次。次に、いくつかの規則に従ってスクリプトまたはバイナリを実行します(この場合は興味深いものではありません)。
注文する
$ ././hello2
また、シェルにファイルを実行させます。
これは.
、とが./.
同じディレクトリであるためです。
各ディレクトリには.
ディレクトリエントリがあります。このエントリはディレクトリ自体に対応します。だから話すのは言うのと./
同じです。././
././././
唯一の違いは、システムがいくつかの追加のディレクトリ検索を実行する必要があることです(シェルがスマートで明白な単純化を確認しない限り)。
各ディレクトリには、..
そのディレクトリを指すエントリもあります。親目次。
つまりalamin
、現在のディレクトリから呼び出すと、次のコマンドもファイルを実行します。
$ ../alamin/hello2
同じ
$ ../alamin/./hello2
そして
$ .././alamin/./hello2
ルートディレクトリは/
特別なケースです。対応するカタログ項目は..
カタログ項目と同じです。.
これは、これを「再定義」するために使用できないことを意味します/..
。
また見なさい:フォルダへのリンク数が実際の状態を反映していませんか?