← All posts tagged WTF

Self-Perfection
WTF code unzip Jolla
Есть скрипт, который должен скачивать zip архив с одним файлом и заменять им существующий. unzip -o (overwite) не подходит, потому что если unzip почему-то заглохнет в процессе, то на месте исходного файла будет начало нового - невалидные данные. Поэтому я сделал примерно так:
unzip -p "$TEMP_ARCHIVE" > "${TEMP_ARCHIVE}_unzipped" || exit 1
mv "${TEMP_ARCHIVE}_unzipped" "${DEST_FILE}" || exit 1
Пока скрипт отрабатывал раз 6 "${DEST_FILE}" и почти в половине случаев "${DEST_FILE}" после обновления оказывался короче, чем нужно. o_O Причём всякий раз на 2^N байт, последний раз ровно на 64 KiB.
Добавление sync между unzip и mv не помогает. Чего-то я не понимаю. Может быть это баг связки странного fuse поверх Btrfs? Как вообще надёжно и адекватно решать такую задачу? sleep не предлагать, это быдлокод.
Self-Perfection
WTF grep $ time grep -c 192.168.240.18 access.log
49090

real 0m0.102s
user 0m0.064s
sys 0m0.039s
$ time grep -c '192\.168\.240\.18' access.log
49094

real 0m0.409s
user 0m0.362s
sys 0m0.044s
$ time grep -Fc 192.168.240.18 access.log
49109

real 0m0.593s
user 0m0.561s
sys 0m0.031s

Почему с фиксированными строками в несколько раз дольше?!?!