Рубрики
backup \ crontab \ tar \ zip \ архивация \ архиваторы

Архивация и сжатие файлов / архиваторы / gzip / rar / bzip / tar / zip / 7z / xz

gzip

gzip -9 file1 - поместить файл file1 в архив gzip с максимальной степенью сжатия
gzip file1 - сжимает файл file1
gunzip file1.gz - разжимает файл file1.gz

rar

rar a file1.rar file1 file2 dir1 - создать rar архив file1.rar, заархивировать файлы: file1, file2 и директорию: dir1
rar a file1.rar test_file - упаковать в rar архив file1.rar файл test_file
rar x file.rar - разархивировать rar архив file.rar
unrar x file1.rar - распаковать rar-архив

bzip

bzip2 file1 - сжимает файл file1
bunzip2 file1.bz2 - разжимает файл file1.bz2

tar

!!! параметр f всегда должен быть в конце иначе тар вылетит с ошибкой
tar -cvf archive.tar file1 file2 dir1 - создать tar архив archive.tar, упаковав в него файлы file1, file2 и директорию dir1
tar -cvf archive.tar file - упаковать в tar-архив archive.tar, файл file
tar -tf archive.tar - вывести содержимое tar архива
tar -xvf archive.tar - распаковать tar архив
tar -xvf archive.tar -C /tmp - распаковать архив в /tmp
tar -cvzf archive.tar.gz dir1 - создать tar архив и сжать его с помощью программы gzip
tar -xvzf archive.tar.gz - разжать tar архив и распаковать его
tar -cvjf archive.tar.bz2 dir1 - создать архив и сжать его с помощью bzip2 ( ключ -j работает не во всех *nix системах )
tar -xvjf archive.tar.bz2 - разжать архив и распаковать его ( ключ -j работает не во всех *nix системах )


tar cvzf mygzip.tar.gz folder1 - создать архив каталога folder1 использовать сжатие gzip
tar cvzf mygzip.gz folder1 - создать архив каталога folder1 использовать сжатие gzip
хорошим тоном считается писать расширение так tar.gz 
c - create 
v - verbose
z - сжатие gz
f - file (имя файла)
 
tar cvjf myfile.tar.bz2 folder1 - создать архив каталога folder1 использовать сжатие bz2
tar cjf myfile.tar.bz2 folder1 - создать архив каталога folder1 использовать сжатие bz2
c - create 
v - verbose
j - сжатие bz2
f - file (имя файла)
 
tar cvJf myfile.tar.bz2 folder1 - создать архив каталога folder1 использовать сжатие xz
tar cJf myfile.tar.bz2 folder1 - создать архив каталога folder1 использовать сжатие xz
c - create 
v - verbose
J - сжатие xz
f - file (имя файла)

tar cvzpf /home/Backup-etc`date +%y_%m_%d`.tgz /etc 2>/home/error.log - создание архива каталога с временной меткой
tar -cvf archive.tar file1 file2 dir1 - создать tar архив archive.tar, упаковав в него файлы file1, file2 и директорию dir1
tar -cvf archive.tar file - упаковать в tar-архив archive.tar, файл file
tar -cvzf archive.tar.gz dir1 - создать tar архив и сжать его с помощью программы gzip
tar -cvjf archive.tar.bz2 dir1 - создать архив и сжать его с помощью bzip2 ( ключ -j работает не во всех *nix системах )
 
tar -tf archive.tar - вывести содержимое tar архива
tar tfv viruses-2010-05-18.tar.bz2 1>zxcvirus.txt - просмотр архива и запись в файл описания
 
 
 
tar -xvzf archive.tar.gz - разжать tar архив gz и распаковать его
tar -xvjf archive.tar.bz2 - разжать архив bz и распаковать его ( ключ -j работает не во всех *nix системах )
tar -xvf archive.tar - распаковать tar архив в текущей директории ( в принципе указывать метод сжатия не обязательно, tar сам разберется) 
tar -xvf archive.tar -C /tmp - распаковать архив в /tmp

xz

xz my.tar - внимание запакует файл и удалит файл foo
unxz foo.tar.xz - внимание распакует, а исходный архив будет удален
tar xvf filename.tar.xz

zip

zip как_назвать_архив.zip что_запоковать_ 
zip file1.zip file1 - сжать один файл в zip-архив 
zip -r file1.zip file_dir - запаковать в архив несколько файлов и/или директорий
zip -r file1.zip file1 file2 dir1 - запаковать в архив несколько файлов и/или директорий
unzip file1.zip - разжать и распаковать zip-архив

Подробнее

Чтобы сжать каталог в архив и разделить его на части с помощью команды tar, можно воспользоваться следующим набором команд:
Сжать каталог в архив с помощью tar и сжать его с помощью gzip:
tar -czvf archive.tar.gz /path/to/directory
-c — создание нового архива.
-z — сжатие с помощью gzip.
-v — вывод информации о процессе.
-f — указание имени выходного файла.
/path/to/directory — путь к каталогу, который нужно заархивировать.

Разделить архив на части с помощью split: П
осле создания архива можно разделить его на части с помощью команды split. 
Например, чтобы разделить архив на части по 100 мегабайт:
split -b 100M archive.tar.gz archive_part_
-b 100M — размер каждой части (100 мегабайт).
archive.tar.gz — исходный архив.
archive_part_ — префикс имен для частей архива (файлы будут называться archive_part_aa, archive_part_ab и т.д.).


Как собрать архив обратно:
Для восстановления архива из частей, нужно выполнить следующую команду:
cat archive_part_* > archive.tar.gz

После этого архив можно разархивировать обратно:
tar -xzvf archive.tar.gz





7zip 
Чтобы сжать файл или каталог в архив и разделить его на части с помощью 7zip, нужно использовать команду 7z в терминале.

1. Сжать каталог с помощью 7zip:
Для сжатия каталога в архив формата .7z, используется следующая команда:
7z a -v100m archive.7z /path/to/directory
a — добавить файлы в архив.
-v100m — разделить архив на части по 100 мегабайт.
archive.7z — имя выходного архива.
/path/to/directory — путь к каталогу, который нужно заархивировать.

2. Разделение архива на части:
Опция -v указывает размер каждой части архива. Например, -v100m означает, что каждая часть будет размером по 100 МБ. 
В результате вы получите файлы вида archive.7z.001, archive.7z.002 и т.д.
7z a -v500m backup.7z /home/user/myfolder
Этот пример создаст архив с именем backup.7z, который будет разделён на части по 500 мегабайт.

3. Распаковка архива:
Чтобы распаковать архив из частей, достаточно запустить команду 7z x:
7z x archive.7z.001
7zip автоматически найдет все части архива и соберет их.

7z -b / benchmark / производительность

apt install p7zip-full lm-sensors


while true; do
    echo "=== $(date) ===" >> benchmark_log.log  # Добавляем метку времени
    7z b >> benchmark_log.log                     # Логируем результаты теста 7z
    echo "=== Sensors ===" >> benchmark_log.log   # Разделитель для данных с датчиков
    sensors >> benchmark_log.log                  # Логируем данные с датчиков температуры
    echo "" >> benchmark_log.log                  # Пустая строка для удобства чтения
    sleep 1                                       # Интервал перед следующим циклом (можно изменить)
done


while true; do
    echo "=== $(date) ===" >> benchmark_log.log
    7z b >> benchmark_log.log
    echo "=== Sensors ===" >> benchmark_log.log
    sensors >> benchmark_log.log
    echo "" >> benchmark_log.log
    sleep 1
done