Jak szybko uzyskać pełną ścieżkę do pliku do użytku w terminalu?
Jak szybko uzyskać pełną ścieżkę do pliku do użytku w terminalu?
Odpowiedzi:
readlink -f foo.bar
lub (najpierw zainstaluj)
realpath foo.bar
ls | xargs realpath
.
readlink
jest to, że będzie działać, nawet jeśli plik nie istnieje. Może to utrwalać błędy w bardzo dziwny sposób.
Po prostu przeciągnij i upuść plik w terminalu.
'/home/alexcohn/.gvfs/…'
Wszystkie dobre odpowiedzi; Oto wskazówka dotycząca innej sytuacji.
Jeśli przeglądasz pliki za pomocą nautilus i chcesz uzyskać pełną ścieżkę do bieżącego katalogu, naciśnij CTRL+L
. Spowoduje to tymczasowe przywrócenie przycisków nawigacyjnych z powrotem do paska adresu w starym stylu, umożliwiając skopiowanie ścieżki.
smb://
styl, więc nie można go ponownie użyć w terminalu.
smb://
ścieżki w stylu.
Jeśli jest to plik wykonywalny, to wykonaj (w terminalu):
$ which your_executable
Na przykład: $ which ls
Oprócz przeciągania ikony istnieje kilka sposobów na uzyskanie pełnej ścieżki bez nautilusa (lub thunara, konquerora i in.). Następnie trzykrotnie kliknij lub przeciągnij i skopiuj, potencjalnie zapisując to w menedżerze schowka * i wklejając tam, gdzie potrzebujesz.
(pastie, klipper, glippy, glipper, anamnesis)
Możesz użyć find
w katalogu nad plikiem. (Jeśli nie wiesz, gdzie to jest, zacznij od miejsca, w którym powala cię twoja powłoka, [ogólnie] w górnej części katalogu domowego.)
find . | egrep filename
Możesz użyć, locate
aby uzyskać nazwę pliku. (Uruchom, sudo updatedb
jeśli nie zostało to ostatnio zrobione).
Bardziej realistycznym przykładem użycia find byłoby coś takiego:
$ 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
[...]
Aby wyciąć te, których nie lubisz, np .:
find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'
locate jest używane w ten sam sposób, chociaż grep jest często bardziej potrzebny:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
To nie jest najskuteczniejszy sposób na wpisanie tego, ale zwykle, jeśli zgubiłem plik, robię to iteracyjnie, dodając klauzule grep.
Łatwo wykonane w Pythonie za pomocą os.realpath()
funkcji:
$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/
/mnt/HDD/VirtualBox VMs
Z pokrewnej odpowiedzi możesz także skorzystaćreadlink
$ readlink -e ./out.txt
/home/username/out.txt
Jeśli po prostu skopiujesz plik w Nautilusie, pełna ścieżka zostanie skopiowana.
Następnie wklej go w terminalu. Po wklejeniu otrzymujesz:
file:///home/juan/2017/agenda20170101.html
Jeśli klikniesz prawym przyciskiem myszy i wybierzesz „Wklej nazwy plików”, otrzymasz:
'/home/juan/2017/agenda20170101.html'
z cytatami, jak pokazano.
Różni się od systemu Windows, który kopiuje zawartość pliku zamiast jego nazwy.