Como você pode obter rapidamente o caminho completo para um arquivo para uso no terminal?

39

Como você pode obter rapidamente o caminho completo para um arquivo para uso no terminal?

    
por Olivier Lalonde 26.01.2011 / 20:32

7 respostas

29

Basta arrastar e soltar o arquivo no terminal.

    
por Olivier Lalonde 26.01.2011 / 20:32
34
readlink -f foo.bar

ou (instale primeiro)

realpath foo.bar
    
por spennig 26.01.2011 / 21:27
9

Todas as boas respostas; Aqui está uma dica para outra situação.

Se você estiver navegando em seus arquivos usando o nautilus e quiser o caminho completo do diretório atual, pressione CTRL+L . Isso altera os botões de breadcrumb temporariamente de volta para a barra de endereços do estilo antigo, permitindo que você copie o caminho.

    
por Sicco 06.06.2012 / 22:34
2

Se for um executável, execute (em um terminal):

$ which your_executable

Por exemplo: $ which ls

    
por perseo22 26.01.2011 / 20:52
1

Além de arrastar o ícone, existem algumas maneiras de obter o caminho completo sem nautilus (ou thunar, konqueror, et al.). Em seguida, você clica três vezes ou clica, arrasta e copia, potencialmente salvando isso no gerenciador da área de transferência *, e colá-lo onde for necessário.
(pastie, klipper, glippy, glipper, anamnesis)

  • Você pode usar find em um diretório acima do seu arquivo. (Se você não sabe onde está, comece onde seu shell o derruba, [geralmente] no topo do seu diretório home.)
    find . | egrep filename

  • Você pode usar locate para obter o nome do arquivo. (Execute sudo updatedb se isso não tiver sido feito recentemente.)

Um exemplo mais realista de usar o find seria algo como:

$ find | egrep askubuntu | grep txt
./askubuntu-temp.txt
./drDocuments/web/meta.askubuntu.txt
./other/stuff/askubuntu.txt.iteration.1
./other/stuff/askubuntu.txt.iteration.2
[...]

Para excluir os que você não gosta, por exemplo:

find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'

locate é usado da mesma maneira, embora o grep seja freqüentemente mais necessário:

locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py

Esta não é a maneira mais eficiente de digitar isso, mas geralmente, se eu perdi um arquivo, faço isso iterativamente, adicionando cláusulas grep no caminho.

    
por belacqua 26.01.2011 / 21:12
1

Facilmente feito em python usando os.realpath() function:

$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/                                      
/mnt/HDD/VirtualBox VMs
    
por Sergiy Kolodyazhnyy 13.01.2017 / 14:57
0

Se você simplesmente copiar um arquivo no Nautilus, o caminho completo será copiado.
Em seguida, cole-o no terminal. Simplesmente colando você recebe:

file:///home/juan/2017/agenda20170101.html

Se você clicar com o botão direito do mouse e escolher "Colar nomes de arquivos", verá:

'/home/juan/2017/agenda20170101.html'

com as aspas conforme mostrado.
Isso difere do Windows, que copia o conteúdo do arquivo em vez de seu nome.

    
por Juan Lanus 08.01.2017 / 15:26