Komut satırı için “birlikte aç” komutu var mı?


24

Komut satırında, dosya türüne bağlı olarak belirli bir dosyayı açmak için kullanılan programların önerilen listesini alma yolu var mı? Örneğin, bir .pdfdosyayı bir olurdu open with...programları kullanarak öneri Evinceve Document Viewer.

Komut satırını çoğu şey için kullanıyorum, ancak bazen belirli bir tür dosyayı açmak için kullanmak istediğim programın adını unutuyorum.

BTW Ubuntu 13.10 kullanıyorum.

yanlısı ucu

@Slm 'nin aşağıdan seçtiği cevap sayesinde, aşağıdaki bash betiğini adlı bir dosyada yaptım openwith.sh:

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

Diğer ad olarak ekleyin veya doğrudan openwithkomut olarak çalıştırın .


1
İle deneyebilirsiniz gnome-open file. Eklediğim alias o='gnome-open'benim için .bashrciçin basitlik.
Pål GD

gnome-openbenzer şekilde çalışır xdg-open.
slm

Görünüşe göre öyle gvfs-open. Question Gnome-open yerine ne kullanabilirim? dan ubuntu sormak .
Pål GD

Yanıtlar:


33

Gördüğüm, "birlikte aç ..." gibi davranacak bir komut yok, ancak belirli bir dosya türüyle ilişkilendirilen uygulamada xdg-open <file>verilenleri açmak için komutu kullanabilirsiniz <file>.

Örnekler

Bir metin dosyasını açmak:

$ xdg-open tstfile.txt
$

tstfile.txtAçılan dosyada sonuçlanan gedit:

                         gedit ss

LibreOffice Writer belgesinin açılması:

$ xdg-open tstfile.odt 
$

Writer'da tstfile.odtaçılan dosyada sonuçlanan :

                         yazar ss

Hangi uygulamalar kullanılır?

xdg-mimeHangi uygulamaların belirli bir dosya türüyle ilişkilendirildiğini bulmak için sistemi sorgulamak için kullanabilirsiniz .

$ 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

Bu 2 aşamalı bir işlemdir. İlk önce, belirli bir dosyanın mime türünü sorgulayacağım xdg-mime query filetype tstfile.txt, ki bu geri dönecektir text/plain. Bu daha sonra bu mime tipiyle ilişkili uygulamaların listesini bulmak için başka bir arama yapmak için kullanılır. Yukarıda görebileceğiniz gibi, ilişkili 2 uygulama var geditve dosyalar calibreiçin.txt

xdg-mimeİlişkileri de değiştirmek için kullanabilirsiniz . Daha man xdg-mimefazla ayrıntı için bakınız.


Varsayılan programların yanı sıra başka program türlerini de göstermenin bir yolu var mı? Örneğin, sadece okularPDF’leri görüntülemek için kurdum , ancak yukarıdaki örneğiniz sadece evince.pdf dosyasını çalıştırdığımda gösteriyor .
modulitos

1
@Lucas - evet, gösterdiğim örnekler yukarıda verilen dosya türleriyle ilişkili uygulamaları gösteriyor. Örneğin tür dosyaları .txtörneğin gedit ve calibre ile ilişkilidir.
slm

.desktopListelenmesini istediğim programlar için dosyalara ihtiyacım var mı? Örneğin, komut dosyasını bir .pdfdosyada evince.desktopçalıştırdığımda okular, aynı zamanda çalıştırabilmeme rağmen döndürüyor .
modulitos

@Lucas - bu muhtemelen en iyi yeni bir Q olarak sorulur, çünkü şimdi orijinal Q'dan uzaktayız.
slm

5

Çoğunlukla komut satırında çalışıyorsanız, ranger veya vifm gibi küfür tabanlı bir dosya yöneticisine bakabilirsiniz . Her ikisi de, dosya türleri için varsayılan eylemleri tanımlamanıza izin verir.

Örneğin, vifm'de şöyle ~/.vifm/vifmrcdernekler tanımlayabilirsiniz:

" 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

EnterTanımlanan işlemlerden biri olan herhangi bir dosyadaki imleci vurmak , ilgili uygulama tarafından açıldığını görecektir. Eğer söz konusu olduğunda görebileceğiniz gibi .htmldosyalar, bir senaryoyu yanı sıra bir uygulama tetikleyebilir.


5

Sırala, ancak sonuç olarak varsayılan uygulamanızı değiştirecek. Bunun hangi işletim sistemlerinde çalıştığından emin değilim, ancak aşağıdaki talimatlar Ubuntu 12.04 - Desktop X86-64 için geçerlidir. Kullanabileceğim herhangi bir pdf dosyası yoktu, bu yüzden .zip arşiviyle test ettim.

Genel adımlar

Aşama 1

Bir terminal türünde:

$ mimeopen -d /home/username/example.zip
ekran görüntüsü # 1 = https://copy.com/qfWSZaZ4FzlA

    ss # 1

Adım 2

#İstediğiniz uygulamayı girip tuşuna basarak listeden seçim yapın enter. Dosya seçtiğiniz uygulamada hemen açılacaktır.

ekran görüntüsü # 2 = https://copy.com/um6Rf7zRdceT

    ss # 2

ekran görüntüsü # 3 = https://copy.com/ytwKCqR6nv8i

    ss # 3

notlar

Not 1

Bu, varsayılan uygulamayı seçtiğiniz uygulamaya değiştirir ve böylece o dosya türünü açtığınızda, listeden en son seçtiğiniz uygulamada açılacaktır.


Ekran görüntüsü 3 için URL’ye bir karma işareti (#) koymak mı istediniz?
trysis

@trysis Sadece maksimum 2 url sınırını atlamak için kullandım.
Lütfen beni

Oh, mantıklı. Yine de hala garip görünüyor.
trysis,

Sizi temizledim ve sizin için 3. URL'yi ekledim.
slm

2

Kullandığın Unix'in lezzetine bağlı olarak sanırım. OS X'te şu openkomutu kullanabilirsiniz :

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.

...

Ayrıca, openkomut ilk NextStep çıktı ve o kadar, OS X tarafından miras olabilir diğer az ya da çok OpenStep'in tabanlı platformlar (örn AfterStep'i, LiteStep) bazı formda kullanılabilir.
Ionoclast Brigham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.