답변:
내가 사용하는 것은 다음과 같습니다.
.mailcap :
application/*; mkdir -p /tmp/mutt \; cp %s /tmp/mutt \; xdg-open /tmp/mutt/$(basename %s) &
.mutt / muttrc :
folder-hook . `rm -f /tmp/mutt/*`
첨부 파일을 열려고 시도 할 때마다 전용 temp 디렉토리에 복사되고 사본이 열립니다.
시작할 때마다 mutt
남아있는 사본이 정리됩니다.
&
사용한 명령에 따라 끝 부분이 필요할 수도 있고 필요하지 않을 수도 있습니다 . (일부 버전 xdg-open
은 차단하고 있지만 다른 버전 은 차단하지 않습니다.)
말할 것도없이, 어떤 명령으로도 이것을 사용할 수 있습니다. xdg-open
편리한 원 스톱 핸들러입니다.
&
xdg-open 이후가 필요했습니다 . 어떤 경우에도 그것을 가지고 다치게 할 수 있습니까?
mailcap
과를 xdg-open
? 답을 복사하십시오. 나는 그 질문을 가진 사람들이 있다고 확신합니다.
text/html; t=$(mktemp /tmp/XXXXXXXXXX) \; cp %s "$t" \; /bin/sh -c "firefox $t \; rm $t \;" &
shutdown-hook
대신 Neomutt를 사용하는 것이 었습니다 . 이것은 mutt가 종료 될 때 tmp 디렉토리를 비 웁니다.
다음과 같은 랩퍼 명령을 사용할 수 있습니다.
mutt
합니다.다음과 같은 것 :
#! /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 -- "$@"
) &
그리고 다음과 같은 것을 넣으십시오.
image/*; muttv eog %s;
muttv
위의 스크립트는 어디에 있습니까 ?
위는 우리가 처음 물어 왜 인수의 목록 또는 그들이 포함 된 문자 ...에서 (들) 파일 이름 (들)이 표시되는 위치에 아무런 가정도하지 않습니다 mutt
그 무엇을 tmpdir
우리가 파일이 무엇을 결정하기 위해 그것을 사용할 수 있도록 (이다 보기 ).
그러나 대부분의 경우 과도하게 사용되며 사서함 폴더를 기준으로 tmpdir을 지정하면 Gilles가 작동하지 않을 수 있습니다.
더 간단한 방법은 다음과 같습니다.
#! /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"
) &
교체 mv
로 cp
당신이 제공 한 원본 파일을 터치하지 않으려면 mutt
.
.muttrc
때문에 실패합니다 tmpdir="=tmp"
. 파일 이름에서 디렉토리를 가져 가지 않는 이유는 무엇입니까?
new-$original
see
명령 줄을 호출 하고 파일이 있어도 파일을 제거 할 것으로 기대하지 않습니다 /tmp
!) 해결책 : 하드 링크를 만드십시오.