내가 시도한 것은 다음과 같습니다.

내가 시도한 것은 다음과 같습니다.

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해석하도록 지시해야 합니다 . $이 작업은 두 가지 방법으로 수행할 수 있습니다.

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 디렉터리는 삭제할 수 없습니다.

관련 정보