Có một mở ra với các lệnh của dòng đối với các dòng lệnh?


24

Dòng lệnh có cách nào để có được danh sách đề xuất các chương trình được sử dụng để mở một tệp cụ thể, dựa trên loại tệp không? Ví dụ, một .pdftệp sẽ có một open with...đề xuất sử dụng các chương trình EvinceDocument Viewer.

Tôi sử dụng dòng lệnh cho hầu hết mọi thứ, nhưng đôi khi tôi quên tên của một chương trình mà tôi muốn sử dụng để mở một loại tệp cụ thể.

BTW Tôi đang sử dụng Ubuntu 13.10.

pro-tip

Nhờ câu trả lời được chọn của @slm bên dưới, tôi đã tạo tập lệnh bash sau trong một tệp có tên openwith.sh:

xdg-mime query default $(xdg-mime query filetype $1)

Thêm dưới dạng bí danh hoặc thực thi trực tiếp dưới dạng openwithlệnh.


1
Bạn có thể thử với gnome-open file. Tôi đã thêm alias o='gnome-open'để tôi .bashrcđơn giản cho.
Pål GD

gnome-openhoạt động tương tự như xdg-open.
slm

Rõ ràng, cũng vậy gvfs-open. Câu hỏi Tôi có thể sử dụng gì thay vì gnome-open? từ hỏi Ubuntu .
Pål GD

Câu trả lời:


33

Không có lệnh nào tôi từng thấy sẽ hoạt động như "mở bằng ..." nhưng bạn có thể sử dụng lệnh xdg-open <file>để mở một lệnh đã cho <file>trong ứng dụng được liên kết với loại tệp cụ thể đó.

Ví dụ

Mở tệp văn bản:

$ xdg-open tstfile.txt
$

Kết quả là tập tin tstfile.txtđược mở trong gedit:

                         ss của gedit

Mở tài liệu LibreOffice Writer:

$ xdg-open tstfile.odt 
$

Kết quả là tệp tstfile.odtđược mở trong Nhà văn:

                         ss của nhà văn

Ứng dụng nào được sử dụng?

Bạn có thể sử dụng xdg-mimeđể truy vấn hệ thống để tìm hiểu những ứng dụng nào được liên kết với một loại tệp nhất định.

$ xdg-mime query default $(xdg-mime query filetype tstfile.txt)
gedit.desktop calibre-ebook-viewer.desktop

$ xdg-mime query default $(xdg-mime query filetype tstfile.odt)
libreoffice-writer.desktop calibre-ebook-viewer.desktop

Đây là một hoạt động 2 bước. Đầu tiên tôi đang truy vấn loại mime của một tệp đã cho, tệp xdg-mime query filetype tstfile.txtnày sẽ trả về text/plain. Điều này sau đó được sử dụng để thực hiện một tra cứu khác để tìm ra danh sách các ứng dụng được liên kết với loại mime này. Như bạn có thể thấy ở trên, tôi có 2 ứng dụng được liên kết geditcalibre, cho .txtcác tệp.

Bạn có thể sử dụng xdg-mimeđể thay đổi các hiệp hội quá. Xem man xdg-mimeđể biết thêm chi tiết.


Có cách nào để hiển thị các loại chương trình khác ngoài các chương trình mặc định không? Ví dụ: tôi chỉ cài đặt okularđể xem PDF, nhưng ví dụ của bạn ở trên chỉ hiển thị evincekhi tôi chạy nó trên tệp .pdf.
modulitos

1
@Lucas - vâng, ví dụ tôi đã trình bày cho thấy các ứng dụng được liên kết với một loại tệp nhất định ở trên. Dành cho người cũ các loại tệp .txtđược liên kết với gedit và tầm cỡ chẳng hạn.
slm

Tôi có cần phải có .desktoptệp cho các chương trình mà tôi muốn liệt kê không? Ví dụ, khi tôi chạy tập lệnh trên một .pdftệp, nó sẽ trả về evince.desktop, mặc dù tôi cũng có thể chạy okular.
modulitos

@Lucas - điều này có lẽ được hỏi tốt nhất với tư cách là một Q mới, vì hiện tại chúng tôi đang rời khỏi Q ban đầu.
slm

5

Nếu bạn chủ yếu làm việc trên dòng lệnh, bạn có thể xem trình quản lý tệp dựa trên lời nguyền, như ranger hoặc vifm . Cả hai đều cho phép bạn xác định các hành động mặc định cho kiểu tệp.

Trong vifm, ví dụ, trong ~/.vifm/vifmrcbạn có thể định nghĩa các liên kết như vậy:

" Images
filetype *.jpg,*.jpeg,*.gif,*.tif,*.png,*.bmp sxiv 

" Media
filetype *.flv,*.avi,*.mp4,*.mpeg,*.mpg,*.mov,*.ogg,*.ogv,*.mkv mpv 

" Web
filetype *.html,*.htm,*.shtml /home/jason/Scripts/vimprobtab.sh 

" PDF
filetype *.pdf apvlv

Nhấn Entervào con trỏ trên bất kỳ tệp nào với một trong các hành động được xác định sẽ thấy nó được mở bởi ứng dụng có liên quan. Như bạn có thể thấy trong trường hợp .htmltệp, bạn có thể kích hoạt tập lệnh cũng như ứng dụng.


5

Sắp xếp, nhưng nó sẽ thay đổi ứng dụng mặc định của bạn. Tôi không chắc hệ điều hành này hoạt động trên cái gì, nhưng các hướng dẫn bên dưới hoạt động cho Ubuntu 12.04 - Desktop X86-64. Tôi không có tệp pdf nào tiện dụng nên tôi đã thử nghiệm với tệp lưu trữ .zip.

Các bước chung

Bước 1

Trong một loại thiết bị đầu cuối:

$ mimeopen -d /home/username/example.zip
ảnh chụp màn hình # 1 = https://copy.com/qfWSZaZ4FzlA

    ss # 1

Bước 2

Chọn từ danh sách bằng cách nhập #ứng dụng bạn muốn và nhấn enter. Các tập tin sẽ ngay lập tức mở trong ứng dụng bạn đã chọn.

ảnh chụp màn hình # 2 = https://copy.com/um6Rf7zRdceT

    ss # 2

ảnh chụp màn hình # 3 = https://copy.com/ytwKCqR6nv8i

    ss # 3

Ghi chú

Lưu ý số 1

Điều này thay đổi ứng dụng mặc định thành ứng dụng bạn chọn và do đó, bất cứ khi nào bạn mở loại tệp đó, giờ đây nó sẽ mở trong bất kỳ ứng dụng nào bạn chọn từ danh sách.


Ý của bạn là đặt dấu băm (#) trong URL cho ảnh chụp màn hình 3?
phân ly

@trysis Mình chỉ dùng nó để vượt qua giới hạn tối đa 2 url.
vui lòng xóa tôi vào

Ồ, có ý nghĩa. Vẫn có vẻ kỳ lạ.
phân tích

Tôi đã dọn sạch bạn A và thêm URL thứ 3 cho bạn.
slm

2

Tôi phụ thuộc vào hương vị của Unix bạn đang sử dụng, tôi đoán vậy. Trong OS X, bạn có thể sử dụng openlệnh:

OPEN(1)                   BSD General Commands Manual                  OPEN(1)

NAME
     open -- open files and directories

SYNOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-h] [-b bundle_identifier]
          [-a application] file ... [--args arg1 ...]

DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had
     double-clicked the file's icon. If no application name is specified, the
     default application as determined via LaunchServices is used to open the
     specified files.

     If the file is in the form of a URL, the file will be opened as a URL.

...

Ngoài ra, openlệnh lần đầu tiên xuất hiện trong NextStep và được OS X kế thừa, do đó, nó thể có sẵn ở một số dạng trên các nền tảng dựa trên OpenStep khác hoặc ít hơn (ví dụ AfterStep, LiteStep).
Ionoclast Brigham
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.