Рейнджер: не пытайтесь отобразить большие файлы (предварительный просмотр)

man 5 crontab покажите, что 'значения шага' могут использоваться:

   Step values can be used in conjunction with ranges.  Following a range with
   '/<number>'  specifies  skips  of  the  number's value through the range.  
   For example, '0-23/2' can be used in the hours field to specify command execution
   every other hour (the alternative in the V7 standard is 
  '0,2,4,6,8,10,12,14,16,18,20,22'). Steps are also permitted after an asterisk, so if
   you want to say 'every two hours', just use '*/2'.

Таким образом в Вашем случае это "выполняется каждую минуту". Большинство кронов будет использовать гранулярность 1 минуты, таким образом, a * точно то же (и является на самом деле более "портативным" как не все значения шага поддержки серверов крона).

3
19.09.2018, 16:42
2 ответа

Я нашел решение, по крайней мере, для текстовых файлов, проблема была в Выделение ... Ranger пытался выделить длинные файлы ... обходной путь I Найдено показано в следующем отрывах ~ / .Config / Ranger / scope.sh

#!/usr/bin/env sh

path="$1"    # Full path of the selected file
width="$2"   # Width of the preview pane (number of fitting characters)
height="$3"  # Height of the preview pane (number of fitting characters)
maxln=54    # Stop after $maxln lines.  Can be used like ls | head -n $maxln

# Find out something about the file:
mimetype=$(file --mime-type -Lb "$path")
extension=${path##*.}

try() { output=$(eval '"$@"'); }
dump() { echo "$output"; }
trim() { head -n "$maxln"; }
hl() { command head -n "$maxln" "$path" | highlight --syntax="$extension" --out-format=ansi; test $? = 0 -o $? = 141; }

case "$mimetype" in
    # Syntax highlight for text files:
    text/* | */xml)
        try hl && { dump | trim; exit 5; } || exit 2;;
esac
exit 1

Идея, она выбрать только первые строки текстовогофайла, а затем вызов Highligh только на этой части.

4
27.01.2020, 21:16

В некоторые части вашего scope.shможно включить команды для проверки размера файла.

Сначала добавьте новую функцию (и вставьте код выше handle_extension()вscope.sh):

drop_bigsize() {
    # 51200 == 50 MB * 1024
    # change this number for different sizes
    if [[ `du "${FILE_PATH}" | cut -f1` -gt 51200 ]]; then
        echo '----- TOO BIG FILE -----'
        exit 0
    fi
}

Во-вторых, вызовите эту функцию где-нибудь в scope.sh.
Например, приведенный ниже код предотвратит предварительный просмотр любых файлов размером более 50 МБ (— это последние несколько строк изscope.sh):

...
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"

### start of new block ###
drop_bigsize
### end of new block ###

if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
    handle_image "${MIMETYPE}"
fi

handle_extension
handle_mime "${MIMETYPE}"
handle_fallback

exit 1

Чтобы делать такие вещи с некоторыми определенными типами файлов, например. для некоторых архивов вам потребуется поместить один и тот же блок кода в другую часть вашегоscope.sh:

...
handle_extension() {
    case "${FILE_EXTENSION_LOWER}" in
        # Archive
        a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
        rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
            ### start of new block ###
            drop_bigsize
            ### end of new block ###
            atool --list -- "${FILE_PATH}" && exit 5
            bsdtar --list --file "${FILE_PATH}" && exit 5
            exit 1;;
        rar)
            # Avoid password prompt by providing empty password
            unrar lt -p- -- "${FILE_PATH}" && exit 5
            exit 1;;
...
1
27.01.2020, 21:16

Теги

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