.
和可以删除吗..
?
我在某处读到有一些针对 Linux 内核的补丁可以让你做到这一点。我不知道在哪里读到它,也不知道如何搜索它,因为 google 和 duckduckgo 忽略了 s .
。
答案1
从技术上来说,这是可能的;例如,在 ext4 文件系统上e2test.img
:
$ sudo mount e2test.img /mnt/temp
$ sudo mkdir /mnt/temp/dir{1,2}
$ sudo umount /mnt/temp
$ debugfs -w e2test.img
debugfs 1.45.6 (20-Mar-2020)
debugfs: unlink dir1/..
debugfs: unlink dir1/.
debugfs: quit
$ sudo mount e2test.img /mnt/temp
$ ls -a /mnt/temp/dir{1,2}
/mnt/temp/dir1:
/mnt/temp/dir2:
. ..
shell 并不是特别混乱:
$ cd /mnt/temp/dir1
$ pwd
/mnt/temp/dir1
$ cd ..
$ pwd
/mnt/temp
正如所料,e2fsck
对此并不满意:
$ e2fsck e2test.img
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Missing '.' in directory inode 113793.
Fix<y>? yes
Setting filetype for entry '.' in ... (113793) to 2.
Missing '..' in directory inode 113793.
Fix<y>? yes
Setting filetype for entry '..' in ... (113793) to 2.
Pass 3: Checking directory connectivity
'..' in /dir1 (113793) is <The NULL inode> (0), should be / (2).
Fix<y>? yes
Pass 4: Checking reference counts
Pass 5: Checking group summary information
e2test.img: ***** FILE SYSTEM WAS MODIFIED *****
e2test.img: 14/128016 files (0.0% non-contiguous), 18478/512000 blocks
确切的行为取决于所使用的特定文件系统。有些甚至不存储.
和..
条目,而是模拟它们(POSIX 需要.
和..
被理解并解析到适当的目录,但不要求它们实际存在)。