Bu satırı benim resimlerim için kullanıyorum mailcap:
image/*; eog %s &;
ancak mutt geçici dosyayı hemen siler ve eog dosyayı yükleyemez.
Ben kaldırdığınızda &EOG için ahmak bekler o komut satırından kaçar kadar kapalı olması.
Bu satırı benim resimlerim için kullanıyorum mailcap:
image/*; eog %s &;
ancak mutt geçici dosyayı hemen siler ve eog dosyayı yükleyemez.
Ben kaldırdığınızda &EOG için ahmak bekler o komut satırından kaçar kadar kapalı olması.
Yanıtlar:
İşte ne kullanıyorum:
.mailcap:
application/*; mkdir -p /tmp/mutt \; cp %s /tmp/mutt \; xdg-open /tmp/mutt/$(basename %s) &
.mutt / muttrc:
folder-hook . `rm -f /tmp/mutt/*`
Bir eki açma girişiminde bulunulduğu her seferinde, adanmış geçici bir dizine kopyalanır ve kopya açılır.
Her başlattığınızda mutt, kalan kopyalar temizlenir.
&Kullandığınız komuta bağlı olarak, sonda gerekebilir veya gerekmeyebilir . (Bazı sürümleri xdg-openengellenirken, diğerleri değil.)
Söylemeye gerek yok, bunu herhangi bir komutla kullanabilirsiniz. xdg-opensadece kullanışlı bir tek elden işleyicidir.
&Sonra xdg-open gerekli . Her halükarda orada olmak acıtmaz, değil mi?
mailcapile xdg-open? ve bu yanıtı kopyalayın. Eminim bu soruya sahip bazı insanlar var.
text/html; t=$(mktemp /tmp/XXXXXXXXXX) \; cp %s "$t" \; /bin/sh -c "firefox $t \; rm $t \;" &
shutdown-hookkullanmaktı; bu mutt kapatıldığında tmp yönünü boşaltır.
Aşağıdaki gibi bir sarmalayıcı komutu kullanabilirsiniz:
mutt.Gibi bir şey:
#! /bin/sh -
TMPDIR=$(
mutt -D 2> /dev/null |
awk -F\" '
$1 == "tmpdir=" {
gsub("~", ENVIRON["HOME"], $2)
print $2
exit
}'
)
[ -n "$TMPDIR" ] || exit
export TMPDIR
nargs=$#
nfiles=0
for i do
case $i in
("$TMPDIR"/?*)
new_file=$(mktemp -ut "XXXXX${i##*/}") &&
mv -- "$i" "$new_file" &&
nfiles=$(($nfiles + 1)) &&
set -- "$new_file" "$@" "$new_file" &&
continue
esac
set -- "$@" "$i"
done
run_command() (
shift "$(($nargs + $nfiles))"
exec "$@"
)
(
run_command "$@"
while [ "$nfiles" -gt 0 ]; do
set -- "$@" "$1"
shift
nfiles=$(($nfiles - 1))
done
shift "$((2*$nargs))"
rm -f -- "$@"
) &
Ve şöyle bir şey koy:
image/*; muttv eog %s;
muttvYukarıdaki senaryo nerede ?
Yukarıdakiler, argüman listesinde dosya adlarının nerede bulunduğuna veya hangi karakteri içerdiklerine dair herhangi bir varsayımda bulunmaz ... Bu yüzden önce muttne tmpdirolduğunu soruyoruz (bu yüzden dosyaların ne olduğunu belirlemek için kullanıyoruz görünüm ).
Çoğu durumda, aşırıya kaçabilir ve Gilles'in işaret ettiği gibi, tmpdir posta kutusu klasörünüzle göreceli olarak belirtilirse çalışmayabilir.
Daha basit olanı:
#! /bin/sh -
nargs=$#
eval "file=\${$nargs}"
newfile=$(dirname -- "$file")/new-$(basename -- "$file")
while [ "$nargs" -gt 1 ]; do
set -- "$@" "$1"
shift
nargs=$(($nargs - 1))
done
shift
mv -- "$file" "$newfile" || exit
(
"$@" "$newfile"
rm -f -- "$newfile"
) &
Değiştir mvile cpsize sağladığı orijinal dosyayı dokunmak istemiyorsanız mutt.
.muttrcçünkü tmpdir="=tmp". Dizini neden dosya adından almıyorsunuz?
new-$original
seekomut satırını ararım , dosyayı olsa bile kaldırmasını beklemiyorum /tmp!) Çözüm: sabit bir bağlantı yapın.