Да, это может быть сделано.
Подтверждение концепции:
Позвольте мне получить файл для тестирования:
cp /bin/sh mylargefile
ls -l
-rw-r--r-- 1 hennes users 137208 Jul 1 20:05 my_large_file
Позволяет разбить его на 3 части, первая часть будет 50 КБ, вторая будет 50 КБ, третья будет 37 КБ. Мы начинаем в конце с третьей части.
dd if=my_large_file of=part3 bs=1k skip=100
33+1 records in
33+1 records out
34808 bytes transferred in 0.000232 secs (150046592 bytes/sec)
~/test$ ls -l
total 180
-rw-r--r-- 1 hennes users 137208 Jul 1 20:05 my_large_file
-rw-r--r-- 1 hennes users 34808 Jul 1 20:09 part3
Итак, мы можем скопировать часть файла. Теперь давайте усечем исходный большой файл до 100000 байт
truncate -s 100000 my_large_file
[hennes@dragon] ~/test$ ls -l
total 144
-rw-r--r-- 1 hennes users 100000 Jul 1 20:17 my_large_file
-rw-r--r-- 1 hennes users 34808 Jul 1 20:09 part3
Сожмите с вашей любимой программой. Например
bzip2 -9 part3
[hennes@dragon] ~/test$ ls -l part3.bz2
-rw-r--r-- 1 hennes users 11773 Jul 1 20:09 part3.bz2
Промыть и повторить:
dd if=my_large_file of=part2 bs=1k skip=50
47+1 records in
47+1 records out
48800 bytes transferred in 0.024526 secs (1989735 bytes/sec)
Новый дд с разными номерами. Новый перемирие с разными номерами. ...
Если вы сделаете это без особой тщательности, вы, скорее всего, все испортите!
Приведенные выше примеры уже представляют собой смесь KB и KiB. Будьте осторожны с вашими номерами.
Также сделайте резервную копию. Это означает, что у вас уже есть в два раза больше места, так что это не должно быть ненужным. Используйте только в том случае, если вам нужно что-то продемонстрировать (например, в качестве домашней работы или в качестве доказательства концепции во время собеседования) и на свой страх и риск.