Mac OS X“open”명령과 동등한 Linux [닫힘]


214

Mac OS X의 "open"명령이 명령 행에서 매우 편리하다는 것을 알았습니다. "남자 오픈"에서 :

open명령 (또는 디렉토리 또는 URL) 파일을 열고, 당신이 그랬던 것처럼 파일의 아이콘을 두 번 클릭했습니다. 응용 프로그램 이름을 지정하지 않으면 LaunchServices를 통해 결정된 기본 응용 프로그램이 지정된 파일을 여는 데 사용됩니다.

즉, 기본 PDF 뷰어 (미리보기해야 함)로 PDF 파일을 열려면 다음 작업 만하면됩니다.

open my.pdf

그러나 Linux에서는 명령 줄에서 PDF 파일을 열려면 기본 PDF 뷰어를 찾기 위해 예를 들어 "evince"(누가 추측 했습니까?)를 찾아야했습니다.

evince my.pdf

그렇다면 Linux 명령 행에 'open'명령에 해당하는 간단한 것이 있습니까?

감사!


6
이 질문이 superuser.com으로 옮겨 져야합니까?
quazgar

1
수퍼 유저가 부적절 해 보입니다. "일반 사용자"또는 "다른 응용 프로그램을 스크립팅하려는 프로그래머", 즉 자동화에 대한 StackOverflow가 있습니까?
Krazy Glew

askubuntu가 적합 할 수 있습니다.
Gopherkhan

답변:


238

시도 할 수 xdg-open있습니다. 대부분의 Linux 배포판에 있습니다. 파일과 연결된 기본 앱이 열립니다.

참고 https://portland.freedesktop.org/doc/xdg-open.html


13
open그러나 이것과의 큰 차이점 은 백그라운드에서 파일 / 앱을 열지 않는다는 것입니다. Linux 응용 프로그램은 매우 혼잡 한 것으로 보이며 종종 실제로 아무 문제가 없어도 터미널에 여러 줄의 진단 및 경고를 출력합니다. 나는 보통 xdg-open <file> &> /dev/null &대신에 뭔가를해야 합니다. 이와 관련하여 xdg-open보다 나은 것이 있습니까?
Suan

13
@Suan : 앱을 시작하자마자 터미널에서 계속 작업 할 수있는 방식으로 터미널에서 분리 된 "백그라운드"로 앱을 엽니 다. 따라서 후행 &이 필요하지 않습니다. "여러 줄의 진단"은 앱이 아닌 앱 자체의 진단입니다 xdg-open. 출력을 원하지 않으면 직접 &> /dev/null사용 evince(OP의 예)해야하므로 불만이 무효화됩니다. xdg-open실제로 갈 길입니다.
MestreLion

15
@MestreLion Mac의 개방으로 인해 응용 프로그램 출력이 터미널에 반영되지 않기 때문에 불만이 완전히 무효화되지 않는다고 생각합니다.
맥스 나나시

7
@MaxNanasy : 출력이되지 않습니다, 응용 프로그램에서 인 xdg-open경우의 오류 수다 있습니다. 이러한 메시지를 억제하는 것은 xdg가 아니라 사용자가 선택 해야합니다 . 따라서보다 "더 나은"것을 요구하는 것은 무효 xdg-open입니다. 맥이 경우에도 open출력 해당 메시지 할 수있는 옵션이 없다, 그 말 것 open입니다 훨씬 더 이상 xdg-open당신이 파일을 실행하는 명령 줄을 사용할 때 일반적으로 그렇지 않은 이유는 단순히 파일을 두 번 클릭하지 (즉, 출력에 관심이 있기 때문에, Nautilus와 같은 브라우저에서?)
MestreLion

12
@MestreLion 불만이 사소한 경우가 될 수 있지만, alias open='xdg-open &>/dev/null'대략 원하는 행동이 나오기 때문에 (시작된 프로그램이 아닌 xdg-open 자체의 오류도 침묵하기 때문에 바람직하지 않습니다).
맥스 나나시

76

당신이 찾고있는 것은 xdg-openOS X의 open명령 과 같은 방식으로 사용할 수 있습니다 . 예를 들면 다음과 같습니다.

xdg-open ~/Documents/Chubby_Bubbies.odt

그러나 이것은 빠르고 정확하게 입력하기가 어렵습니다. 대신 xdg-open의 별칭을 만들어야 프로세스가 훨씬 빨라집니다.

물론 openOS X와 ​​일치하도록 별칭을 지정할 수 있지만 (원하는 것을 선택할 수 있습니다) 개인적 ]으로 속도 때문에 바로 가기에 오른쪽 대괄호 ( )를 사용합니다 . 이를 사용하려면 .bashrc파일에 다음을 추가 하십시오.

alias ']'='xdg-open'

그런 다음 리소스를 열려면 다음 예와 같이 사용하십시오.

] www.google.com
] file.txt
] ~/Pictures
] ssh://myserver.local/home/jeremy

또한 현재 디렉토리에서 파일 브라우저 (예 : 노틸러스)를 열 수 있습니다 :

] .

경험을 통해 한 글자 별칭이 위의 바로 가기에 가장 효과적이라는 것을 알았습니다. 결국 목표는 효율성입니다. OS X에서 동일한 별칭을 만들 수 있습니다. 독자에게 연습으로 남겨 두었습니다. :-)


26
Linux와 Mac에서 일관되게 유지하기 위해 'open'에서 'xdg-open'으로 별칭을 만들었습니다.
Adam Byrtek

좋은 점은 아니지만 .url 파일을 열려고 gedit에서 열었습니다.
sorin

18
@sorin 당신은 그것이 내 잘못 인 것처럼 들리도록 노력하고 있습니까?!
제레미 Visser

7
@sorin : xdg-open파일에 대한 시스템의 기본 응용 프로그램을 엽니 다. 귀하의 경우, .url파일은 gedit에서 열리도록 설정되어 있습니다. 이를 변경하려면 노틸러스에서 파일을 마우스 오른쪽 버튼으로 클릭하고 속성> 연결 프로그램으로 이동하여 기본 응용 프로그램을 변경하면 xdg-open그에 따라 작동합니다.
MestreLion

여기 내가 만든 요점 은 첫 번째 주석의 '모두'섹션 아래에 복사하여 붙여 넣기하고 명령을 실행하는 것입니다.
ozanmuyes 2016 년

14

방금 이것을 직접 정리했기 때문에 내가 어떻게했는지 적어 보았습니다. Suan이 요청한 것과 특히 관련이 있습니다. 이 단계를 수행하면 필요하지 않은 메시지로 터미널을 덮지 않고 "열기"만 입력하면됩니다.

라는 스크립트 작성 open에이 ~/bin내용이 단지입니다 :

xdg-open "$1" &> /dev/null &

스크립트를 저장하고 닫은 다음 "source .profile"(또는 관련이있는 경우 .bash_profile)을 입력하십시오. "Open Music"을 입력하면 노틸러스 GUI에서 음악 폴더가 열리고 터미널에 아무 것도 입력하지 않아야합니다.


별명과 이상한 위치는 무엇입니까? 스크립트 자체를 호출 open하여 PATH에 넣으십시오 (일반적으로 $HOME/bin/open)
tripleee

내 컴퓨터 (우분투 11.10)에서 경로에 'open'이라는 스크립트를 추가하고 / bin / open으로 오버라이드 된 방식으로 시도하십시오. 그래서 나는 별명없이 당신의 일을하는 방법을 해결할 수 없습니다.
Anake

트릭은 PATH보다 이전의 디렉토리에 자신 만의 스크립트를 두는 것 /bin입니다. 관례 $HOME/bin에 따라 PATH의 시작 부분에 시스템 디렉토리 앞에 추가됩니다. 일반적으로 이것은 귀하 .profile또는 이와 유사한 것에 의해 수행됩니다 . 예를 들어, .profile우분투 의 기본값 은 정확하게 이것을 수행합니다.
tripleee

2
출력을 리디렉션하는 /dev/null것은 약간 변덕입니다. 아마도 $HOME/.xsession-errors문제를 해결해야 할 경우 진단이 완전히 손실되지 않도록 출력을 그와 같은 것으로 리디렉션 할 수 있습니다.
tripleee

1
@efdee : 모든 변수를 올바르게 인용 하는 것은 좋은 프로그래밍 관행이며 bash 스크립트에서 필수적입니다. 이것은와 관련이 없으며 이것은 xdg-open쉘 문제입니다.
MestreLion

11

전통적으로 "see"명령을 사용할 수 있습니다. run-mailcap 만 사용합니다. 이것은 Gnome 및 X 등없이 작동합니다.

man see

3
문제는 run-mailcap(그리고 그 많은 별칭) 별도의 (심히 구식 인) 앱 연결 데이터베이스를 사용한다는 것입니다. 예를 들어 내 시스템에서 .mp3노래가 VLC에서 올바르게 열리지 만 .txt파일은 gedit 대신 열리지 않고 .pdf파일은 열리지 않습니다! (오류 : "application / pdf"유형에 대한 "보기"
메일 캡

내가 말했듯이, 그것은 각 시스템에 달려 있습니다. run-mailcap인식 하는 방식으로 자신을 등록하는 응용 프로그램은 거의 없습니다 . xdg-open내부적으로 gvfs-open(Ubuntu와 같은 Gnome 시스템에서), xdg의 mime-database spec을 사용하여 훨씬 더 많은 응용 프로그램이 사용합니다.
MestreLion

gimp나를 위해 50 페이지 이상의 PDF를 열었 습니다. 을 고집하겠습니다 xdg-open.
user1717828

lessx''D 에서 txt 파일 열기
Timo

4

그놈 열기


7
gnome-open은 이제 더 이상 사용되지 않으며 xdg-open사용자가 Gnome을 사용하는 경우 이미 내부적으로 사용되었습니다 (현재 사용 gvfs-open)
MestreLion

2

MIME을 올바르게 설정 한 경우을 사용할 수 있습니다 mimeopen. 유용한 옵션이 있으므로 매뉴얼 페이지를 확인하십시오.


1
이 답변이 확장되면 좋을 것입니다. 이것이 어떻게 작동하는지보고 싶습니다
Magnus

-3

Gnome Desktop 환경에서 다음 명령을 사용합니다.

nautilus `pwd` &

이것은 "open"과 유사합니다. Mac에서 명령


11
이 답변에는 여러 가지 문제가 있습니다. A) 사용자가 요청한대로 파일이 아닌 현재 디렉토리를 엽니 다. B) 당신이 사용할 수있는 .대신에 "의 pwd"C)를 변경하는 경우 pwd파일에 대해, 사용자는 여전히 노틸러스 먼저 단지에 대한 D) 열기 노틸러스을 연 후 ENTER를 칠 필요 파일을 열 수있는 매우 간접적 인 솔루션입니다.
MestreLion
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.