터미널에서 사용하기 위해 파일의 전체 경로를 신속하게 얻는 방법은 무엇입니까?


답변:


44
readlink -f foo.bar

또는 (먼저 설치)

realpath foo.bar

이 답변은 하나보다 더 정확합니다.
Kunok

전체 폴더 : ls | xargs realpath.
Pablo A

1
단점은 readlink파일이 존재하지 않아도 작동한다는 것입니다. 이것은 매우 이상한 방식으로 버그를 영속시킬 수 있습니다.
GregRos

32

터미널에서 파일을 끌어다 놓기 만하면됩니다.


1
나는 이것을 잊지 않도록 여기에 두었습니다. 그것이 여러분 중 일부에게 도움이되기를 바랍니다. : D
Olivier Lalonde

실제 마운트 된 경로 대신 SMB 마운트 된 공유에 대해 "smb : //"접두사가 붙은 경로를 반환합니다.
Kupiakos

@Kupiakos : 나를 위해, gnome-terminal은 삭제 된 파일 경로를 행복하게 변환합니다'/home/alexcohn/.gvfs/…'
Alex Cohn

11

모든 좋은 답변; 다른 상황에 대한 팁이 있습니다.

노틸러스를 사용하여 파일을 탐색하고 현재 디렉토리의 전체 경로를 원하는 경우을 누릅니다 CTRL+L. 이렇게하면 이동 경로 단추가 일시적으로 이전 스타일 주소 표시 줄로 변경되어 경로를 복사 할 수 있습니다.


… 그러나 이것은 여전히 smb://스타일이므로 터미널에서 재사용 할 수 없습니다.
Alex Cohn

흥미있는; 내 시스템 (Ubuntu 13.10)에서 smb://스타일 경로 가 없습니다 .
Sicco

정확히 내가 찾던 것은 터미널이 ls에게 훌륭한 장소라는 것을 의미하지만 파일 폴더보기에서 작업하는 시간이 있습니다 : ')
edencorbin

3

실행 파일이면 터미널에서 실행하십시오.

$ which your_executable

예를 들면 다음과 같습니다. $ which ls


이것이 내가 찾던 답변입니다
Sharjeel Ahmed

1

아이콘을 드래그하는 것 외에도 노틸러스 (또는 thunar, konqueror 등)없이 전체 경로를 얻는 몇 가지 방법이 있습니다. 그런 다음 세 번 클릭하거나 클릭 한 채 끌어 복사하여 클립 보드 관리자 *에 저장 한 다음 필요한 곳에 붙여 넣을 수 있습니다.
(페이스트, klipper, glippy, glipper, anamnesis)

  • find파일 위의 디렉토리에서 사용할 수 있습니다 . (어딘지 모르는 경우, 일반적으로 홈 디렉토리의 맨 위에서 쉘이 드롭하는 위치를 시작하십시오.)
    find . | egrep filename

  • locate파일 이름을 얻는 데 사용할 수 있습니다 . ( sudo updatedb최근에 수행하지 않은 경우 실행하십시오 .)

find를 사용하는보다 현실적인 예는 다음과 같습니다.

$ 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
[...]

마음에 들지 않는 것을 잘라내려면

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

grep이 종종 더 필요하지만 locate는 거의 같은 방식으로 사용됩니다.

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

이것은 이것을 입력하는 가장 효율적인 방법은 아니지만 일반적으로 파일을 잃어버린 경우 grep 절을 추가하면서 반복적으로 수행합니다.


1

os.realpath()함수를 사용하여 파이썬에서 쉽게 수행 할 수 있습니다.

$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/                                      
/mnt/HDD/VirtualBox VMs

A로부터 관련 대답 , 당신은 또한 사용할 수 있습니다readlink

$ readlink -e ./out.txt                                                                                                  
/home/username/out.txt

0

노틸러스에서 파일을 간단히 복사하면 전체 경로가 복사됩니다.
그런 다음 터미널에 붙여 넣습니다. 붙여 넣기 만하면 다음과 같은 이점이 있습니다.

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

마우스 오른쪽 버튼을 클릭하고 "파일 이름 붙여 넣기"를 선택하면 다음과 같은 결과가 나타납니다.

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

표시된 따옴표와 함께.
이것은 파일 이름이 아닌 파일 내용을 복사하는 Windows와 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.