Из Переменные TCP:
The tcp_reordering variable tells the kernel how much a TCP packet may be reordered in a stream without assuming that the packet was lost somewhere on the way.
tcp_reordering
можно изменить с помощью переменной net.ipv4.tcp_reordering
в sysctl
. По умолчанию это значение 3
.
Если изменить переменную net.ipv4.tcp_reordering
, то ss --info
напечатает все соединения со значениями, отличными от 3
. Фрагмент источника iproute2
:
...
if (s->reordering != 3)
printf(" reordering:%d", s->reordering);
...
#! /bin/bash
test ! -e "$1" && echo "Run with a tar archive" && exit
tar --list -f "$1" | tac | while IFS= read -r fname; do
test "${fname: -1}" = '/' && continue # skip directories
tar --extract -f "$1" "$fname" || exit 1 # let's stop in case we can't extract a file
tar --delete -f "$1" "$fname" || exit 2 # just in case
done
test "$?" = "0" && tar xf "$1" # restore directories timestamps
tac
используется для изменения порядка файлов, так что tar не нужно перезаписывать весь архив после удаления файла -tar нужно только обрезать архив. Я протестировал скрипт на паре файлов -, он работает нормально, хотя может быть очень медленным для архивов с большим количеством маленьких файлов.
"${fname: -1}"
извлекает последний символ имени файла -, если это косая черта, то это каталог, поэтому мы его пропускаем.Проверьте комментарии для портативной версии.