私が試したことは次のとおりです。

私が試したことは次のとおりです。

Oracle Linuxには、削除できず、所有者を変更できず、グループを変更できない奇妙なディレクトリがあります。

名前が .$EXTEND の空の環境変数のようです。

私が試したことは次のとおりです。

[root@PSFSTSTAPP01 interfaces]# ls -al
total 74
drwxrwxrwx  3 psoft psoft 3 May 11 12:42 .
drwxrwxrwx  4 psoft psoft 4 May 11 12:42 ..
drwx------+ 2 root  sys   3 Oct 23  2015 .$EXTEND
[root@PSFSTSTAPP01 interfaces]#

[root@PSFSTSTAPP01 interfaces]# chown root:root .$EXTEND
chown: changing ownership of `.': Operation not permitted
[root@PSFSTSTAPP01 interfaces]#

[root@PSFSTSTAPP01 interfaces]# echo $EXTEND

[root@PSFSTSTAPP01 interfaces]#

[root@PSFSTSTAPP01 interfaces]# echo .$EXTEND
.
[root@PSFSTSTAPP01 interfaces]#
[root@PSFSTSTAPP01 interfaces]# chmod 777 .$EXTEND
chmod: changing permissions of `.': Operation not permitted
[root@PSFSTSTAPP01 interfaces]#

[root@PSFSTSTAPP01 interfaces]# chattr -i .$EXTEND
chattr: Inappropriate ioctl for device while reading flags on .
[root@PSFSTSTAPP01 interfaces]#

[root@PSFSTSTAPP01 interfaces]# rm -r .$EXTEND
rm: cannot remove directory: `.'
[root@PSFSTSTAPP01 interfaces]# rmdir .$EXTEND
rmdir: failed to remove `.': Invalid argument
[root@PSFSTSTAPP01 interfaces]#

答え1

$記号をエスケープするrm -r .\$EXTEND
か、
単一引用符を使用できます。rm -r '.$EXTEND'

答え2

変数と文字列を区別するためにbashは$

これを行うとき:

rm -R .$EXTEND 

$EXTEND変数が展開され、結果が置き換えられます。

ファイルを削除するには、bashにファイルを特別な意味がないと解釈するように.$EXTEND指示する必要があります。$これは2つの方法で行うことができます。

rm -R .\$EXTEND #\ strips the special meaning of $

または

rm -R '.$EXTEND'
# Use single quotes. Variable expansion/substitution doesn't happen inside
# single quotes

答え3

SMBが有効になると、Oracle ZFSストレージシステムに.$ EXTENDディレクトリが作成されることがわかりました。プールに対してSMBを無効にすることはできますが、.$EXTENDディレクトリは削除できません。

関連情報