이 줄을 내 이미지에 사용합니다 mailcap
.
image/*; eog %s &;
mutt는 임시 파일을 즉시 삭제하고 eog는 그것을로드 할 수 없습니다.
내가 &
음소거를 제거 하면 명령 줄에서 벗어날 때까지 eog가 닫힐 때까지 기다립니다.
답변
내가 사용하는 것은 다음과 같습니다.
.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
편리한 원 스톱 핸들러입니다.
답변
다음과 같은 랩퍼 명령을 사용할 수 있습니다.
- 파일 이름을 바꿉니다
- 백그라운드에서 뷰어를 실행합니다
- 시청자가 시청자에게 반환하지 않고 돌아 왔을 때 정리
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
.