Terminalden bir dosyayı yalnızca adını yazarak açma


15

xdg-openTerminalden kullanıcının tercih ettiği uygulamada böyle bir dosyayı açacağını biliyorum :

xdg-open filename

Ancak, geçerli uygulamadaki bir dosyayı yalnızca varsayılan uygulamasında nasıl açabileceğimi merak ediyorum:

filename

ardından Enterelbette. Başka bir şey yok.


1
Muhtemelen aynı dizinde bir dosyayı kontrol etmek ve xdg-açmak için command_not_found_handle()işlevi değiştirebilir misiniz /etc/bash.bashrc?
kronit

1
Takma ad kullanarak riskinizin bir kısmını azaltabilirim. alias open = "xdg-open" open basitçe bir değişkendir. istediğiniz kadar kısa yapabilirsiniz.
rɑːdʒɑ

Yanıtlar:


20

Ubuntu'nun çağrısını Komut Bulunamadı Büyüsü'ndecommand-not-found belirtildiği gibi kullanın . Şu anda yüklenecek paketleri önermek için kullanılmaktadır. Hangisinin sisteminize kurulması gerektiğine bakın ./usr/share/doc/command-not-found/README

O bağlı değildir, çünkü Daha da iyisi, command-not-foundambalajın, (yeniden) Bash yerleşiğini uygulamak command_not_found_handlebir yapmak xdg-opendurumunda $1varolan bir dosya olduğunu ve önceki uygulanmasına diğer tüm davaları devretme.

# Save the existing code for the handler as prev_command_not_found_handle.
# Bit of a hack, as we need to work around bash's lack of lexical closure,
# and cover the case when it is not defined at all.
eval "prev_$(declare -f command_not_found_handle)" >& /dev/null \
     || prev_command_not_found_handle () { 
            echo "$1: command not found" 1>&2
            return 127
        }

# Define the new implementation, delegating to prev_handler.
command_not_found_handle () {
    if [ -f "$1" ]; then
        xdg-open "$1"
    else
        prev_command_not_found_handle "$@"
    fi
}

İyi soru, şık özellik.


Biraz daha düşünün: bash_completionişleyiciyi de genişletmedikçe özelliği düşündüğünüz kadar beğenmeyebilirsiniz . Açmak istediğini hayal et file-with-a-long-name.txt, sonra kur

alias o='xdg-open'  

dört tuşa basmanız yeterli olacaktır:

o f<Tab><Enter>

Oysa tam dosya adını yazmak sıkıcı bir 26 sürer ve bu kaçınılmaz yazım hataları üzerinde geri bırakmayı hariç tutar.

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.