Como você pode obter rapidamente o caminho completo para um arquivo para uso no terminal?
Como você pode obter rapidamente o caminho completo para um arquivo para uso no terminal?
Respostas:
readlink -f foo.bar
ou (instale primeiro)
realpath foo.bar
ls | xargs realpath
.
readlink
é que ele funcionará mesmo que o arquivo não exista. Isso pode perpetuar os erros de maneiras muito estranhas.
Basta arrastar e soltar o arquivo no terminal.
'/home/alexcohn/.gvfs/…'
Todas boas respostas; Aqui está uma dica para outra situação.
Se você estiver navegando em seus arquivos usando o nautilus e desejar o caminho completo do seu diretório atual, pressione CTRL+L
. Isso altera os botões de navegação temporariamente de volta para a barra de endereços de estilo antigo, permitindo copiar o caminho.
smb://
estilo, portanto não pode ser reutilizado no terminal.
smb://
caminho do estilo.
Se for um executável, execute (em um terminal):
$ which your_executable
Por exemplo: $ which ls
Além de arrastar o ícone, existem algumas maneiras de obter o caminho completo sem o nautilus (ou thunar, konqueror, et al.). Você clique três vezes ou clique e arraste e copie, potencialmente salvando isso no seu gerenciador de transferência * e colando-o onde precisar.
(pastie, klipper, glippy, glipper, anamnese)
Você pode usar find
em um diretório acima do seu arquivo. (Se você não sabe onde está, comece onde o seu shell o deixa, [geralmente] na parte superior do diretório inicial.)
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 do uso de 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 cortar 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'
o find é usado da mesma maneira, embora o grep seja frequentemente mais necessário:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
Essa não é a maneira mais eficiente de digitar isso, mas geralmente se eu perdi um arquivo, faço isso de forma iterativa, adicionando cláusulas grep à medida que for avançando.
Facilmente feito em python usando a os.realpath()
função:
$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/
/mnt/HDD/VirtualBox VMs
De uma resposta relacionada , você também pode usarreadlink
$ readlink -e ./out.txt
/home/username/out.txt
Se você simplesmente copiar um arquivo no Nautilus, o caminho completo será copiado.
Em seguida, cole-o no terminal. Simplesmente colando, você obtém:
file:///home/juan/2017/agenda20170101.html
Se você clicar com o botão direito do mouse e escolher "Colar nomes de arquivos", obterá:
'/home/juan/2017/agenda20170101.html'
com as aspas, como mostrado.
Isso difere do Windows, que copia o conteúdo do arquivo em vez de seu nome.