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