Реализует ли какая-либо файловая система механизм копирования при записи для CP

awk не поддерживает PCRE (Perl-совместимое регулярное выражение), поэтому вы не можете использовать любые поисковые пути нулевой ширины, такие как отрицательный прогноз, который вы используете, (?! word +) . Механизм Regex

awk поддерживает только ERE (расширенное регулярное выражение). Вам нужно включить в него всю логику, иначе вы можете разбить логику в соответствии со своими потребностями. Также посмотрите на встроенные функции awk , проверьте, могут ли они помочь в этом отношении.

16
24.09.2017, 13:14
4 ответа

Ключевое слово для поиска: reflink. Недавно он был реализован в XFS.

РЕДАКТИРОВАТЬ :Реализация XFS изначально была помечена как ЭКСПЕРИМЕНТАЛЬНАЯ. Это предупреждение было удалено в версии ядра 4.16, через несколько месяцев после того, как я написал выше :-).

11
27.01.2020, 19:48

Если вы не введете системный вызов дляcp(или, по крайней мере, для копирования блока ), ОС будет трудно определить, что данные, которые программа cpсобирается записать, совпадают с теми, которые она просто читать из другого блока. Кроме того, у вас будут дополнительные накладные расходы для управления сценарием «несколько файлов совместно используют одни и те же блоки». Большие похожие файлы, отличающиеся лишь несколькими блоками, встречаются редко. Так что в целом дешевле просто скопировать эти блоки, чем добавлять эти административные издержки ко всем всем файлам.

Теперь, если вы «скопируете» файлы (многие из них ), добавив еще один клон/снимок файловой системы, скажем, в BTRFS, ситуация изменится :Теперь вы «скопировали» все файлы в файловой системе,и любые изменения в них будут копироваться -на -и записываться. Это есть, но не в ext4.

«Журналирование» — это совершенно независимая от этого концепция, важны административные структуры для файлов.

0
27.01.2020, 19:48

Из справочной страницыcp:

When --reflink[=always] is specified, perform a lightweight copy, where the data blocks are copied only when modified. If this is not possible the copy fails, or if --reflink=auto is specified, fall back to a standard copy.

Это работает на файловых системах, которые поддерживают Копировать -в -Записать(ссылку ), в основном BTRFS на данный момент. Реализация рефлинков XFS находится в разработке[1] [2] .

16
27.01.2020, 19:48

В Linux есть системный вызов, который позволяет процессам пользовательского пространства сообщать ядру, что нужно делать копии при записи копий файлов. FICLONERANGE и FICLONE, используемые в качестве опций ioctl, позволяют копировать при записи копии файлов и диапазонов внутри файлов.

Используется cp --reflink для создания копий, если файловая система это поддерживает.

3
27.01.2020, 19:48

Теги

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