ドットファイルまたはフォルダーが何であるかはわかっていますが、すべてのディレクトリにfolderという名前の特定のドットがあります(名前は単なるドットです)。彼らは何のために使われますか?
たとえば、ここは私の「bin」フォルダの一部です。最初の牽引ラインを見てください。
drwxr-xr-x 2 root root 4.0K Jul 29 12:39 .
drwxr-xr-x 23 root root 4.0K Jul 29 12:37 ..
-rwxr-xr-x 1 root root 904K Mar 30 20:02 bash
-rwxr-xr-x 1 root root 30K Aug 3 2012 bunzip2
...
すべてのディレクトリには、.
および..
エントリが含まれます。
.
はディレクトリ自体を意味します。 currentディレクトリと呼ばれます。
..
は、ディレクトリの親ディレクトリ、つまり、それを含むディレクトリを意味します。
他のディレクトリに含まれていないディレクトリが1つあります:/
。したがって、/
は特別です。他のすべてのディレクトリと同様に、..
エントリが含まれますが、その..
エントリはそれ自体です。したがって、/
の場合、および/
の場合、..
と.
は同等です。
これらのディレクトリエントリは、さまざまな目的に役立ちます。たとえば、コマンドcd ..
を使用して、現在のディレクトリの親にディレクトリを変更できます。
実行中のプログラムまたはスクリプトのコンテキストで.
を見たことがあるかもしれません。 Unixスタイルのシェルでは、名前でコマンドを実行すると、シェルは現在のディレクトリ内の名前でプログラムを自動的に実行しようとしません。 (これはWindowsから来ている一部のユーザーにとっては驚くべきことです。)これの主な理由はセキュリティです。誰かがシステム管理ツールと同じ名前のディレクトリにプログラムを作成し、そのツールを実行するとディレクトリにいる間、彼らはあなたをだましてプログラムを実行させたかもしれません。
したがって、 PATH
にないプログラムを実行するには、/
を含む名前で呼び出す必要があります。現在のディレクトリでプログラムを実行するには、./program
を使用できます。 (/program
は使用できません。これは絶対パスであり、「ルートディレクトリのprogram
というファイル/
」を意味するためです。)
.
は現在のディレクトリを意味します。
..
は親ディレクトリを意味します。
したがって、cd ..
と入力すると、1レベル上に移動します。 cp /etc/resolv.conf .
と入力すると、現在のディレクトリにファイル/etc/resolv.conf
がコピーされます。
単一のドットは、現在のディレクトリを表します。二重ドットは親ディレクトリを表します。 「cd ..」と入力すると、親ディレクトリに移動します。詳細については、このページの下部を参照してください。 http://www.basicconfig.com/linux/linux_cd_command_tutorial