Можно ли удалить уже распакованные файлы из.tar?

Из Переменные 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);
...

0
29.05.2021, 19:11
1 ответ
#! /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}"извлекает последний символ имени файла -, если это косая черта, то это каталог, поэтому мы его пропускаем.Проверьте комментарии для портативной версии.

2
28.07.2021, 11:28

Теги

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