Как --компрессия могла отсутствовать в моем wget?

ls -a | grep text1 | cat file2.txt -

- обозначает стандартный ввод. В качестве альтернативы вы можете написать

ls -a | grep text1 | cat - file2.txt

, чтобы вывод был в другом порядке.


Еще одна возможность с использованием подстановки процесса:

cat <(ls -a | grep text1) file2.txt

или в другом порядке:

cat file2.txt <(ls -a | grep text1)
4
23.08.2018, 16:18
1 ответ

В этом вопросе ошибка. Вопрос подразумевал, что этот сценарий сделан полностью аварийно -безопасным auto_da_alloc. Для ext4 это не так. Я предполагаю, что это было не так и в старом ext3. Однако это верно для btrfs и для bcachefs.

Recent ext4 does have a special workaround to reduce the chance of replace-via- rename producing zero-length files by forcing out the new data blocks upon rename . However, rename does not wait for this flush to complete, and therefore provides no atomicity guarantee—it is possible to end up with only partial new content after a crash. Of the file systems we tested, btrfs is the only one that provides the replace-via-rename atomicity guarantee.

https://homes.cs.washington.edu/~lijl/papers/ferrite-asplos16.pdf


В документации btrfsговорится, что замена файла с помощью переименования ()обеспечит полную атомарность и не требует явного fsync ()для защиты данных от сбоев. Я думаю, что это было добавлено примерно в то же время, что и ext4 auto_da_alloc. Мы также видим заявление о том, что реализация btrfs позволяет избежать ухудшения производительности, поскольку она не приводит к ожиданию вызова rename (). Однако я заметил, что в последних ядрах, по крайней мере, если вы использовали fsync (), следующее переименование ()будет fsync ()родительским каталогом и ожидание записи всего «дерева журнала» .

bcachefsв настоящее время обеспечивает полный уровень защиты, хотя я не нашел никакой документации. Проверьте код. Вижу вызов функции "карта файлов _запись _и _ожидание _диапазон"

XFSимеет отклонено добавлено аварийное -обходное решение безопасности для переименования (). По-видимому, он получил код, который снижает (, но не устраняет )риск потери данных в другом случае.

UBIFS(используется, например,. на многих устройствах Openwrt )не содержит каких-либо аварийных -обходных путей безопасности для переименования (). Его можно было бы принять, но потребовалось бы много работы.http://www.linux-mtd.infradead.org/doc/ubifs.html#L_sync_exceptions

6
27.01.2020, 20:53

Теги

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