Filesystems

包含其他文件串聯的虛擬文件

  • November 22, 2015

有沒有一種方法可以創建類似於這樣的文件系統對象:

mknod files p
cat file1 file2 ... fileN > files

但是這樣可以找到它,就好像它是一個普通文件一樣?

在基於 Linux 的作業系統上,這可以通過網路塊設備或設備映射器設備來完成。您獲得的文件是塊設備。

nbd

ln -s /path/to/first-file file.0
...
ln -s /path/to/last-file file.19
nbd-server -C /dev/null -m 127.0.0.1:12345 file

sudo nbd-client localhost 12345 /dev/nbd0

(串聯是/dev/nbd0)。

使用設備映射器(文件大小必須是 512 的倍數):

sudo losetup /dev/loop0 file1
sudo losetup /dev/loop1 file2
s0=$(sudo blockdev --getsize /dev/loop0)
s1=$(sudo blockdev --getsize /dev/loop1)
printf '%s\n' "0 $s0 linear /dev/loop0 0" "$s0 $s1 linear /dev/loop1 0" |
 sudo dmsetup create mybundle

(串聯是/dev/mapper/mybundle)。

引用自:https://unix.stackexchange.com/questions/94041