Как исправить, что mpv не показывает полное изображение?

Как уже упоминалось, губка из moreutils великолепна. Я использую этот сценарий для эмуляции, чтобы избежать использования moreutils зависимость:

#!/bin/sh -e
#Soak up input and tee it to arguments
st=0; tmpf=
tmpf="`mktemp`" && exec 3<>"$tmpf" || st="$?"
rm -f "$tmpf" #remove it even if exec failed; noop if mktemp failed
[ "$st" = 0 ] || exit "$st"
cat >&3
/dev/null

Вы можете использовать это так:

grep '^[a-zA-Z.:]' "$filepath" \
| sed -r '/^(rm|cd)/d' \
| uniq -u | sponge "$filepath" 

Вы не можете сделать это с помощью простого перенаправления вывода, потому что перенаправление происходит до запуска команд, а перенаправление вывода обрезает выходной файл.

Другими словами, к моменту запуска grep (первой простой команды конвейера) последнее перенаправление уже усекло файл ввода / вывода.

Насколько мне известно, на самом деле нет никаких стандартных утилит UNIX, которые выполняли бы настоящее редактирование на месте. sed -i только эмулирует его с временным файлом.Я предполагаю, что причина в том, что настоящая фильтрация на месте может легко повредить файл, если этап конвейера не удастся.

Что касается того, что происходит внизу, то и | , и используют системные каналы, которые передают ввод-вывод буфера за раз. Механизм не создает временные файлы (в любом случае не настоящие файлы (файловой системы)) и пытается избежать одновременного сохранения всего ввода в памяти.

0
16.03.2019, 12:02
1 ответ

Я добавил это в свой mpv.conf, чтобы заставить его работать:

# If the current file is an image, keep
# it open forever
image-display-duration=inf

# Loop files in case of webms or gifs
loop-file=inf

scale=spline36
cscale=spline36
dscale=mitchell
dither-depth=auto
correct-downscaling
sigmoid-upscaling

Источник:https://github.com/occivink/mpv-image-viewer/blob/master/mpv.conf

1
28.01.2020, 03:54

Теги

Похожие вопросы