é softlinks e hardlinks são um pouco relacionados a objetos mutáveis e imutáveis (em java) em qualquer sentido?

0

Enquanto lia sobre o Linux, recebi o seguinte:

Suppose that file1 already exists. A hard link, called file2, is created with the command:

$ ln file1 file2

Note that two files now appear to exist. However, a closer inspection of the file listing shows that this is not quite true.

$ ls -li file1 file2

The -i option to ls prints out in the first column the inode number, which is a unique quantity for each file object. This field is the same for both of these files; what is really going on here is that it is only one file but it has more than one name associated with it, as is indicated by the 3 that appears in the ls output. Thus, there already was another object linked to file1 before the command was executed.

Hard links are very useful and they save space, but you have to be careful with their use, sometimes in subtle ways. For one thing if you remove either file1 or file2 in the example on the previous screen, the inode object (and the remaining file name) will remain, which might be undesirable as it may lead to subtle errors later if you recreate a file of that name.

Eu não estou recebendo a noção de objeto de arquivo como dito acima, pois o UNIX foi feito puramente em C (corrija-me Se eu estiver errado). É algo semelhante a classes mutáveis e imutáveis em Java?

    
por lazarus 02.09.2014 / 14:23

1 resposta

1

Não, mas links físicos funcionam exatamente como referências de objetos em Java. Você pode copiar uma referência para qualquer número de variáveis, não duplicará o objeto. Você pode limpar essas variáveis ou excluí-las, mas o objeto só será limpo quando a última referência for apagada (não a última criada).

Os links físicos são os mesmos: eles são referência ao objeto de arquivo real ou, em outras palavras, às entradas de diretório. Criar um link físico está criando outra referência ao objeto de arquivo em outro diretório. Quando você rm um arquivo em algum lugar, ele não destruirá o objeto de arquivo se outra referência (inode) a ele existir em outro lugar.

Eles são diferentes dos soft links (atalhos) porque excluir um atalho nunca apaga o arquivo.

    
por Pyrophorus 02.09.2014 / 16:26