Если Вы уверены, что нет никаких новых строк в Ваших именах файлов, не преобразовывают пустые байты в новые строки и вызов head
сохранить только первые несколько строк.
<abc.txt tr '\0' '\n' |
head -n 50 |
tar --null --no-recursion -uf abc.tar --directory= /tmp/temp --files-from -
Для преодоления имен файлов, содержащих новые строки, Вы можете транспонировать новые строки и аннулируете, затем позвольте head
к его материалу, и транспонируют назад.
<abc.txt tr '\0\n' '\n\0' |
head -n 50 |
tr '\0\n' '\n\0' |
tar --null --no-recursion -uf abc.tar --directory= /tmp/temp --files-from -
Я только что изучил эту тему, как и в OP, основной момент путаницы связан с «мышлением в файлах», в то время как LVM работает с физическими экстентами .
Обычно LVM располагается между жестким диском и файловой системой, каждый из этих трех слоев имеет свой термин для понятия «одинакового размера фрагменты байтов»:
hdd: sectors (512 bytes) -> LVM: physical extents (4MB) -> file system: blocks (e.g. 4K)
Я создал большое кольцевое устройство размером 200 МБ, 100 МБ для логического тома (testlv )и 60 МБ для моментального снимка LV (snaplv ).
LV 100 МБ можно представить как состоящий из 25 физических экстентов, каждый из которых представляет блоки файловой системы размером 4 МБ. Снапшот LV изначально также ссылается на эти PE, на данный момент он не использует свои 15 PE. Всякий раз, когда пользователь выполняет запись в файловую систему любого логического тома, файловая система изменяет содержимое одного или нескольких блоков , которые, конечно же, сами хранятся в физических экстентах LVM.
Таким образом, изменение PE из testlv означает:
Очевидно, что изменение PE из snaplv почти не отличается, только последний шаг отличается тем, что будет обновлена копия PE snaplv.