Необходимо использовать --delete
.
Не знайте, существует ли, другой путь, но музыкальные файлы составляет 10 МБ макс., таким образом, нет никакой проблемы в копии его снова.
править: как scai сказал, можно использовать --fuzzy
, но я действительно не был бы. Это не гарантирует задачи, зависит от многих переменных, которые могут закончиться в ложных положительных сторонах.
Из справки читайте
:
-t timeout time out and return failure if a complete line of input is
not read within TIMEOUT seconds. The value of the TMOUT
variable is the default timeout. TIMEOUT may be a
fractional number. If TIMEOUT is 0, read returns immediately,
without trying to read any data, returning success only if
input is available on the specified file descriptor. The
exit status is greater than 128 if the timeout is exceeded
Так что попробуйте:
while true
do
echo "$var"
IFS= read -r -t 0.5 -n 1 -s holder && var="$holder"
done
Переменная владельца
используется, так как при использовании с read
переменная теряет свое содержимое, если только она не используется только для чтения (в этом случае она все равно не полезна), даже если read
timed out:
$ declare -r a
$ read -t 0.5 a
bash: a: readonly variable
code 1
я не смог найти способа предотвратить это.
Немного поздно, но может быть (лучшее) решение:
while true ; do
read -r -s -t 0.5; RETVAL=$?
# ok? echo && continue
[ $RETVAL -eq 0 ] && echo -E "$REPLY" && continue
# no timeout ? (EOF or error) break
[ $RETVAL -gt 128 ] || break
done
ИМХО, больший тайм-аут никому не повредит, так как "чтение" возвращается, как только становится доступной новая строка ...
{{1 }}