Làm thế nào để mở tập tin với chương trình mặc định từ dòng lệnh?


10

Nếu tôi nhấp vào tệp trong trình duyệt tệp GUI, chương trình mặc định sẽ được sử dụng để mở tệp. Điều này hữu ích cho các tệp mà tôi không biết cách mở từ dòng lệnh.

Có cách nào để mở một tệp với chương trình mặc định bằng cách sử dụng dòng lệnh thay thế không?

Ngoài ra, có một cách, đưa ra một phần mở rộng tập tin, để xác định một lệnh để mở nó?

Câu trả lời:


15

Có cách nào để mở một tệp với chương trình mặc định bằng cách sử dụng dòng lệnh thay thế không?

Đây là một công việc cho xdg-open:

xdg-open mở một tệp hoặc URL trong ứng dụng ưa thích của người dùng. Nếu một URL được cung cấp, URL sẽ được mở trong trình duyệt web ưa thích của người dùng. Nếu một tệp được cung cấp, tệp sẽ được mở trong ứng dụng ưu tiên cho các tệp thuộc loại đó. xdg-open hỗ trợ tệp, URL ftp, http và https.

  • Cú pháp mở tệp với ứng dụng mặc định:

    xdg-open {file}
    

xdg-open được cài đặt sẵn trong Ubuntu.

Ngoài ra, có một cách, đưa ra một phần mở rộng tập tin, để xác định một lệnh để mở nó?

Bởi phần mở rộng, không. Ứng dụng mặc định được chọn dựa trên loại MIME, không phải phần mở rộng. Linux không có "phần mở rộng".

Đối với một tệp cụ thể, bạn có thể sử dụng xdg-mimeđể xác định cả loại MIME của tệp và ứng dụng mặc định được liên kết với nó:

  • Cú pháp để hiển thị loại MIME của tệp:

    xdg-mime query filetype {file}
    
  • Cú pháp để hiển thị ứng dụng mặc định của loại MIME:

    xdg-mime query default {mimetype}
    
  • Cú pháp để hiển thị ứng dụng mặc định của tệp:

    xdg-mime query default "$(xdg-mime query filetype {file})"
    

Như một cách giải quyết (hacky), bạn có thể sử dụng lệnh

xdg-mime query default \
    `xdg-mime query filetype "$(find ~ / -iname '*.png' -print -quit)"`

để hiển thị ứng dụng mặc định cho, ví dụ, hình ảnh PNG.

Điều này sẽ hoạt động nếu và chỉ khi bạn có hình ảnh PNG trên máy tính và tệp tìm thấy đầu tiên kết thúc bằng .pnghình ảnh PNG hợp lệ.


Chính xác những gì tôi đang tìm kiếm! Bạn có biết nếu xdg-open có thể cho biết lệnh được sử dụng để mở không, ví dụ như các tệp PNG?
Gradient

Tôi đã cập nhật câu trả lời của mình.
Dennis
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.