Boa pergunta. Parece que atualmente não há maneiras fáceis de dizer de alto nível.
Um problema é que um arquivo pode compartilhar apenas parte dos dados via Copy-on-Write. Isso é chamado de extensão física e algumas ou todas as extensões físicas podem ser compartilhadas entre arquivos CoW.
Não há nada análogo ao inode
que, quando comparado entre arquivos, diga que os arquivos compartilham as mesmas extensões físicas. (Editar: veja minha outra resposta ).
A resposta de baixo nível é que você pode perguntar ao kernel quais extensões físicas são usadas para o arquivo usando o , que está documentado . Em princípio, se todas as extensões físicas forem iguais, o arquivo deverá compartilhar o mesmo armazenamento subjacente.FS_IOC_FIEMAP
ioctl
Documentation/filesystems/fiemap.txt
Poucas coisas implementam uma maneira de ver essas informações em um nível superior. Encontrei alguns códigos aqui . Aparentemente, o filefrag
utilitário deve mostrar as extensões com -v. Além disso, btrfs-debug-tree
mostra essas informações.
Eu teria cuidado, no entanto, como essas coisas podem ter tido pouco uso na natureza para esse fim, você pode encontrar bugs com respostas erradas; portanto, tenha cuidado com esses dados para decidir sobre as operações que podem causar corrupção de dados.
Algumas questões relacionadas:
btrfs-debug-tree
para listar as extensões em um determinado nome de arquivo?