macos tem um sistema /.vol/
especial mapeado para o diretório e arquivos reais. Os arquivos e diretórios estão acessíveis via /.vol/<device_id>/<inode_number>
, independentemente de onde os arquivos estão no sistema de arquivos.
É um pequeno sistema legal.
Assim, os programas podem, por exemplo, obter o número de inode de /Users/jdoe/someFile.txt
e depois abri-lo via /.vol/12345/6789
(neste caso, o id do dispositivo é 12345 e o número do inode 6789). Você então move /Users/jdoe/someFile.txt
em qualquer lugar que quiser (no mesmo volume) e tudo simplesmente funciona. Você pode até escrever um script de shell que suporte este magic
.
ls -di <file>
para obter o número do inode.
$ ls -di /User/jdoe/someFile.txt
6789 /User/jdoe/someFile.txt
EDITAR:
Você usa stat
para obter o id do volume e o número do inode, de acordo com a resposta vinculada, conforme destacado pelo IMSoP.
GetFileInfo /.vol/12345/6789
retornaria a localização atual do arquivo localizado anteriormente em /Users/jdoe/someFile.txt
.
Veja link para mais informações.