Eu não sei como encontrá-lo através do comando ls
. Mas se você realmente quiser, você pode usar o btrfs-progs / btrfs-debug-tree .
Com reflink = sempre , os arquivos compartilharão um bloco de dados comum. Este bloco de dados comum (também conhecido como extents) tem mais de 1.
-
Primeiro você precisa encontrar o objeto para os arquivos um e dois
#./btrfs-debug-tree /dev/xvdc (Check under FS_TREE) <snip> item 8 key (256 DIR_INDEX 4) itemoff 15842 itemsize 33 location key (259 INODE_ITEM 0) type FILE namelen 3 datalen 0 name: one item 9 key (256 DIR_INDEX 5) itemoff 15809 itemsize 33 location key (260 INODE_ITEM 0) type FILE namelen 3 datalen 0 name: two </snip>
De cima podemos ver o seu 259 (um) e 260 (dois) .
-
Agora encontre seus refs. da árvore de extensão. Abaixo, o comando encontrará o bloco de dados compartilhado entre dois arquivos.
# ./btrfs-debug-tree /dev/xvdc | grep -A2 "refs 2" extent refs 2 gen 9 flags DATA extent data backref root 5 objectid 260 offset 0 count 1 extent data backref root 5 objectid 259 offset 0 count 1
Bônus: crie outra referência:
# cp --reflink=always one three
verifique se a referência é incrementada em 1.
# ./btrfs-debug-tree /dev/xvdc | grep -A3 "refs 3"
extent refs 3 gen 9 flags DATA
extent data backref root 5 objectid 260 offset 0 count 1
extent data backref root 5 objectid 261 offset 0 count 1
extent data backref root 5 objectid 259 offset 0 count 1
Aqui, o bloco de dados é compartilhado entre três arquivos apontados pelo objectid 259,260,261 .