Como imprimo o caminho de um arquivo em um diretório diferente?

1

Se você tiver um arquivo one.txt em ~/Documents e você cd ~/Documents , então realpath one.txt será impresso:

~/Documents/one.txt .

No entanto, e se você quiser imprimir o caminho de um arquivo em um diretório diferente. Por exemplo, cd a/b e há um arquivo two.txt nos diretórios a2/b2 , em seguida, como uma pessoa imprime o caminho absoluto de two.txt passando apenas two.txt para um comando.

Procurando fazer algo como realpath two.txt que funciona em um diretório diferente.

    
por MyWrathAcademia 25.07.2018 / 20:24

1 resposta

3

Basta informar realpath do caminho relativo do diretório atual:

$ pwd
/home/myself/local/build/shell-toolbox
$ realpath ../../../.profile
/home/myself/.profile

O utilitário GNU realpath não seria capaz de encontrar meu arquivo .profile , ou produzir o caminho absoluto para ele, sem que eu dê uma dica sobre onde ele foi localizado. No seu caso, você poderia ter qualquer número de arquivos chamado two.txt , então realpath deve pelo menos receber um caminho relativo do diretório atual para poder fornecer um nome de caminho absoluto para o arquivo.

Em um sistema de arquivos Unix, um arquivo é identificado exclusivamente por um nome do caminho (relativo ou absoluto). Um nome de arquivo não pode identificar exclusivamente qualquer arquivo que não seja um dos arquivos no diretório atual.

Para localizar todos os arquivos comuns chamados two.txt em ou sob o diretório inicial e obter os nomes de caminho relativos a $HOME :

find "$HOME" -type f -name two.txt
    
por 25.07.2018 / 20:33