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.
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 .png
hình ảnh PNG hợp lệ.