回答:
/
ディレクトリにも実際に有効なディレクトリエントリがあるため、エラーは発生しませんが、..
他のディレクトリとは異なり、ディレクトリ自体を指しているため、次のように動作し.
ます。
$ ls -lid / /. /..
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /.
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /..
$
最初の列として、あなたに伝え.
、..
と/
すべて同じiノード番号を持っているので、同じファイルシステムのエントリです。
たとえあなたのcd ..
中にいて/
も、そのままにいてください/
。
..
ます。
/
、の有効なエントリを含め、他のフォルダと同じように扱いたいということです..
。それ以外の場合は/
、システム内の他のすべてのフォルダーと比較して異なる方法で処理する必要があります。
これを削除するには、カーネルとCライブラリで特殊なケース処理コードを作成する必要があるためです。今は、常に「。」があると仮定できます。移動先のディレクトリにある「..」
現時点で必要な特別な場合のコードは、ファイルシステムのマウントコードのみです。ルートディレクトリは常にルートディレクトリではないため、コードはマウントポイントを含むディレクトリを指すように「..」のinode値をオーバーライドします。
mount
コマンドとそれに関連する特殊ファイルにシャッフルされます/etc/fstab
。
それがないと../../../../
、フォルダからルートに到達するためにスパムを送信することができないため、そこにあると便利です。..
ルートでそれを許可しなかった場合、作業ディレクトリの下にあるフォルダの数を数えながら立ち往生します。
cd /
ですか?
../
方が適切です。また、PHPで多くのファイル操作を行っていますが/
、いくつかの理由でできません。
../
のsを入力し、意図しないファイルをエラーなしで操作(または削除)する可能性があります。
../
必要以上に何度も繰り返し、意図したとおりに動作することを望んでいるのは、ファイルシステムが明らかに許可していても、(休止)論理エラーのように見えます。