Это решение также действительно для zsh
FLAG="-m VARIABLE"
DESCRIPTION="This is a very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long sentence"
DISTANCE_FLAG=3
WIDTH1=$(echo "$FLAG" | wc -c )
WIDTH2=$(($(tput cols)-$DISTANCE_FLAG -$WIDTH1 ))
paste <(echo $FLAG ) <(echo $DESCRIPTION | fold -sw $(( $(tput cols) - $DISTANCE_FLAG -$WIDTH1 )) )| pr -t -e$(($DISTANCE_FLAG+$WIDTH1))
Это новая функция Coreutils ls
.
Из документации info:
'-N'
'--literal'
'--quoting-style=literal'Не заключать имена файлов в кавычки. Однако, при использовании 'ls' неграфические символы все равно печатаются как вопросительные знаки, если вывод является терминалом и вы не указали опцию '--show-control-chars'.
Чтобы отключить эту функцию, добавьте export QUOTING_STYLE = literal
в свой ~ / .bashrc
или, если вы используют последние GNU coreutils с оболочками, которые не поддерживают export var = value
, используйте:
QUOTING_STYLE=literal
export QUOTING_STYLE
IMO, недавно добавленные стили цитирования - хорошая функция, но они не должны были изменять поведение по умолчанию, потому что Это нарушает слишком много существующих сценариев и привычек командной строки - особенно для людей, которые делают все правильно и правильно цитируют свои переменные.
Кстати, Debian вернул поведение в coreutils 8.25-2, поэтому оно лишь ненадолго присутствовало в sid
в 8.25-1.