当路径上安装了另一个文件系统时,是否可以删除文件?

当路径上安装了另一个文件系统时,是否可以删除文件?

刚刚写了关于将 /usr 移动到新分区我想知道在安装新分区后如何删除文件。使用问题中的示例,是否可以在根分区上安装新分区/usr,然后删除根分区下的所有文件/usr以释放根分区上的空间。

答案1

不是直接地,但有一个办法可以解决这个问题:mount --bind是你的朋友:

# Existing directory with a couple files in it
root@nkubuntu1004:~/test# ls testdir
bar  foo

# Mount a filesystem over existing directory
root@nkubuntu1004:~/test# mount -o loop testfs testdir
root@nkubuntu1004:~/test# ls testdir
lost+found

# Bind mount root filesystem to another directory
root@nkubuntu1004:~/test# mount --bind / bindmnt

# Can now get to contents of original directory through the bind mount
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
bar  foo

# Remove a file
root@nkubuntu1004:~/test# rm bindmnt/root/test/testdir/bar
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
foo
root@nkubuntu1004:~/test# ls testdir
lost+found

# Unmount filesystem
root@nkubuntu1004:~/test# umount testdir

# Observe the change having taken effect
root@nkubuntu1004:~/test# ls testdir
foo
root@nkubuntu1004:~/test#

另请参阅man mount——搜索“绑定挂载”。

相关内容