Existe um termo apropriado para um caminho físico acessado através de um link simbólico?

1

Eu passei a última hora deliberando sobre o que nomear uma propriedade, o que significa o oposto total de "realpath físico resolvido" .

Por exemplo, suponhamos que /foo/bar/ seja um caminho físico comum. Se um link simbólico foi criado em /quux , que simplesmente apontou para /foo , é apropriado referir-se a tudo acessado via /quux/foo/bar/ como um "caminho simbolizado" ...?

Isso é principalmente uma questão sobre nomenclatura, porque não tenho certeza se existe uma maneira mais precisa de se referir a um nome de caminho não resolvido. Eu usaria "caminho de trabalho", mas o termo soa muito específico do processo.

Se o contexto for necessário, é para uma API do sistema de arquivos em que uma rotina determina se uma chamada de sistema extra deve ser feita para um recurso cujo caminho não é totalmente físico.

    
por Alhadis 01.02.2017 / 13:53

2 respostas

3

Se você quer ser realmente pedante, você pode dizer que não existe realmente tal coisa como um "caminho físico". Unix tem

  • nome de caminho absoluto: um nome de caminho que começa com um único ou mais de dois caracteres <slash> .

  • Nome de caminho relativo: um nome de caminho que não começa com um caractere <slash> .

Se um nome de caminho contiver um link simbólico, ele ainda será um "nome do caminho". Não há outros termos para isso no padrão POSIX.

No entanto, o utilitário pwd tem dois sinalizadores, -P e -L , mas sem indicação do que essas letras abreviam:

-L

If the PWD environment variable contains an absolute pathname of the current directory and the pathname does not contain any components that are dot or dot-dot, pwd shall write this pathname to standard output, except that if the PWD environment variable is longer than {PATH_MAX} bytes including the terminating null, it is unspecified whether pwd writes this pathname to standard output or behaves as if the -P option had been specified. Otherwise, the -L option shall behave as the -P option.

-P

The pathname written to standard output shall not contain any components that refer to files of type symbolic link. If there are multiple pathnames that the pwd utility could write to standard output, one beginning with a single <slash> character and one or more beginning with two <slash> characters, then it shall write the pathname beginning with a single <slash> character. The pathname shall not contain any unnecessary <slash> characters after the leading one or two <slash> characters.

Naturalmente, é possível inferir o significado de lógico e físico para esses dois sinalizadores, e a versão GNU do kernelutils deste utilitário tem essas duas palavras por tanto tempo opções.

Então a resposta é "caminho lógico".

    
por 01.02.2017 / 14:06
0

Bem, alguns desses são mais coloquiais do que definitivos, mas:

Se o link sempre apontar para o arquivo, independentemente de o arquivo original ou o link ser movido Alias deve ser usado (observe que um alias pode ser usado para ler arquivos e diretórios, mas não gravar em o original).

Se o link puder ser movido, mas o arquivo não puder, e os dados puderem ser lidos em um arquivo / diretório vinculado por meio do link, mas não gravados, Soft Link , Symlink ou Shortcut deverão ser usados.

Se o link e o destino puderem ser movidos e os dados puderem ser lidos e gravados no arquivo / diretório através do link, então Hard Link deve ser usado.

Por exemplo, um Symlink/Soft Link seria lido pelo sistema como /foo/bar/ quando o link fosse acessado. Um Alias iria acessá-lo como /quux/foo/bar/ ao ler, mas /foo/bar/ ao escrever, e um Hard Link o acessaria como /quux/foo/bar/ ao escrever e ler.

    
por 02.02.2017 / 02:28