Как изменить размер файла linux

Обновлено: 04.07.2024

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

Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.

В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.

Основные команды

Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.

Рассмотрим основные утилиты, которые будем использовать:

  • badblocks - если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
  • e2label - позволяет изменить метку раздела с файловой системой ext.
  • fsck - проверка файловой системы linux и исправление найденных ошибок
  • mkfs - позволяет создать файловую систему Linux.
  • resize2fs - изменить размер раздела с файловой системой
  • tune2fs - позволяет изменить файловую систему Linux, настроить ее параметры.

А теперь будет рассмотрена работа с файловой системой linux на примерах.

Работа с файловой системой в Linux

Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.

Создание файловой системы

Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:

sudo mkfs -t тип устройство

Доступны дополнительные параметры:

  • -с - проверить устройство на наличие битых секторов
  • -b - размер блока файловой системы
  • -j - использовать журналирование для ext3
  • -L - задать метку раздела
  • -v - показать подробную информацию о процессе работы
  • -V - версия программы

Создаем файловую систему на нашем устройстве. Будем создавать ext3:

sudo mkfs -t ext4 -L root /dev/sda6

Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Изменение метки файловой системы

Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра - устройство и новую метку если нужно.

sudo e2label /dev/sda6

sudo e2label /dev/sda6 root1

Настройка файловой системы linux

Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.

Синтаксис команды очень прост:

$ tune2fs опции устройство

Поддерживаются следующие опции:

  • -j - создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
  • -J - настроить параметры журнала
  • -l - получить содержимое суперблока
  • -L - изменить метку раздела
  • -m - изменить процент дискового пространства, зарезервированного для суперпользователя
  • -M - изменить последнюю папку монтирования
  • -U - задать UUID файловой системы
  • -C - изменить значение счетчика монтирования
  • -T - изменить последнюю дату проверки файловой системы
  • -с - изменить периодичность проверок файловой системы с помощью fsck
  • -O - изменить опции файловой системы.

Изменить размер зарезервированного места для суперпользователя до пяти процентов:

sudo tune2fs -m 5 /dev/sda6

Setting reserved blocks percentage to 5% (392358 blocks)

Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:

Изменить счетчик количества монитрований:

tune2fs -C 0 /dev/sda6

Setting current mount count to 0

Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.

С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:

sudo tune2fs -O extents,uninit_bg,dir_index

После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.

sudo fsck -np /dev/sda6

Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.

Изменение размера файловой системы Linux

Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs - resize2fs.

Запустить утилиту очень просто. Ей нужно передать всего два параметра:

$ resize2fs [опции] устройство размер

Доступны также опции:

  • -M уменьшить файловую систему до минимального размера
  • -f - принудительное изменение, не смотря на потерю данных
  • -F - очистить буфер файловой системы

Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.

Для примера уменьшим размер нашего раздела до 400 Мегабайт:

sudo resize2fs /dev/sda6 400M

Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long

Проверка файловой системы Linux

При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.

$ fsck [опции] устройство

  • -p - автоматическое восстановление
  • -n - только проверка, без восстановления
  • -y - ответить да на все запросы программы
  • -с - проверить на битые сектора (аналог badblocks
  • -f - принудительная проверка, даже если раздел помечен как чистый
  • -j - внешний журнал файловой системы

Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:

sudo fsck -a /dev/sda6

root: clean, 11/32704 files, 37901/102400 blocks

Дефрагментация файловой системы

Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:

Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:

Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.

В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 - нужна дефрагментация.

Выводы

В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!


Если вы хотите создать определенный размер файла в Linux, чтобы расширить раздел подкачки, то вы можете использовать один из следующих методов для его создания.

Я уже знаю несколько команд для выполнения этого, но я включил все возможные варианты в этой статье.

Вы можете проверить все команды, которые доступны в этой статье, и выбрать предпочитаемую для вас.

Я собираюсь создать файл 10M.

Это можно сделать с помощью следующих 6 методов.

Как создать файл определенного размера в Linux с помощью команды fallocate?

Fallocate используется для манипулирования выделенным дисковым пространством для файла, чтобы освободить или предварительно выделить его.

Для файловых систем, которые поддерживают системный вызов fallocate, предварительное распределение выполняется быстро, выделяя блоки и помечая их как неинициализированные, не требуя ввода-вывода для блоков данных.

Это гораздо быстрее, чем создавать файл, заполняя его нулями.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды truncate?

truncate используется для уменьшения или расширения размера файла до указанного размера.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды dd?

Команда dd означает дубликатор данных.

Он используется для копирования и преобразования данных (по умолчанию из стандартного ввода в стандартный вывод).

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды head?

Команда head считывает первые несколько строк любого текста, переданного ему в качестве ввода, и записывает их в стандартный вывод (который по умолчанию является экраном дисплея).

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды xfs_mkfile?

xfs_mkfile создает один или несколько файлов. Файл дополняется нулями по умолчанию.

Используйте команду ls, чтобы проверить заданный размер файла.

Как создать файл определенного размера в Linux с помощью команды perl?

Perl означает «Practical Extraction and Reporting Language».

В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. д.

В Linux всё является файлами и tty терминалы не исключение.

Или аналогичную команду

crw--w----. 1 andrei tty 136, 1 Nov 19 12:43 /dev/pts/1

Первый символ - это тип файла.

Доступно семь типов файлов: обычные, директории, символьные, блоки, сокеты, именованые каналы, символьные ссылки

- : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link

Тип c означает character. То есть этот файл может принимать и показывать символы

drwxr-xr-x. 118 root root 8192 Nov 19 11:02 /etc

Видно, что тип файла d. То есть directory

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─centos-root 253:0 0 6.2G 0 lvm / └─centos-swap 253:1 0 820M 0 lvm [SWAP] sr0 11:0 1 57.7M 0 rom /run/media/andrei/VBox_GAs_6.1.10

brw-rw----. 1 root disk 8, 0 Nov 19 11:02 /dev/sda brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Можно убедитсья, что тип файлов b. То есть block

? означает что должен быть один любой символ.

brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

[12] означает что должен быть либо символ 1 либо символ 2

brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Когда вы хотите узнать версию системы вы можете выполнить

ls -l /etc/system-release

lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

Тип файла l означает link то есть это не настоящий файл, а ссылка

ls -l /etc/system-release /etc/centos-release /etc/redhat-release

-rw-r--r--. 1 root root 37 Oct 23 17:53 /etc/centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/redhat-release -> centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

Если бы вы пользовались redhat то настоящим был бы redhat-release

Ещё один способ получить информацию о версии - выполнить lsb_release -d где -d означает description

Description: CentOS Linux release 7.9.2009 (Core)

Узнать расположение файла

Узнать где находится файл lsb_release можно командой which lsb_release. Чтобы сразу получить дополнительную информацию выполните

ls -lF $(which lsb_release)

-rwxr-xr-x. 1 root root 15929 Mar 27 2015 /usr/bin/lsb_release*

Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл исполняемый.

Чтобы узнать откуда взялся файл можно воспользоваться командой rpm с опциями q (query) и f (file)

rpm -qf $(which lsb_release)

Чтобы скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)

interactive означает, что если файл с таким имененм существует, вас спросят прежде чем затирать его

cp -i /etc/hosts .
cp -i /etc/hosts .

cp: overwrite ‘./hosts’?

Чтобы создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой mkdir с опцией p (parent)

mkdir -p sites/heiheiru
ls -l sites

total 0
drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru

Создать сразу несколько файлов

Чтобы создать одновременно несколько файлов с именами идущими по порядку выполните touch с <>

touch files/file
ls -l files

-rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file5

Чтобы скопировать директорию files в директорию sites со всем содержимым выполните

cp -R files sites
ls -l sites/files/

total 0 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file5

Директория files была скопирована в директорию sites, то есть теперь у sites есть поддиректория files.

Если у вас установлен модуль tree вы можете наглядно изучить вложенность. Если нет - выполните сперва

sudo yum install tree

sites └── files ├── file1 ├── file2 ├── file3 ├── file4 └── file5 1 directory, 5 files

Сжимать файлы и каталоги необходимо по нескольким причинам. Некоторые из наиболее очевидных преимуществ – это сохранение дискового пространства экономия полосы пропускания при использовании сети.

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

Примечание: Все примеры выполнены на сервере Ubuntu 12.04, но инструменты будут работать аналогичным образом и в других дистрибутивах Linux.

Основы сжатия и архивирования

Сжатие – это технология уменьшения размера файла на диске с помощью разных алгоритмов и математических вычислений. Файлы форматируются определенным образом, что делает их общую структуру несколько предсказуемой, даже если их содержимое отличается. Кроме того, содержимое довольно часто повторяется. Обе эти характеристики позволяют сжимать файлы.

Сжатие с потерями и без потерь

При обсуждении сжатия в отношении компьютеров и типов файлов одни и те же термины могут означать несколько разных вещей в зависимости от контекста. Возьмем, к примеру, музыкальный файл MP3. MP3 – это сжатый звуковой файл, созданный из более крупного исходного музыкального файла.

Этот тип сжатия принципиально отличается от того, о чем мы будем говорить в этом руководстве. Это связано с тем, что MP3 создается путем анализа формы сигнала аудиофайла, в ходе которого выясняется, какие данные можно потерять, сохранив при этом общий звук оригинала.

Это метод называется сжатием с потерями, поскольку он действительно теряет информацию из исходного файла, которая не попадает в MP3. Конвертировать MP3 обратно в исходный файл невозможно.

Пользователи могут не заметить, что файл сжат, но такой файл содержит не всю информацию оригинала. Чем выше степень сжатия, тем больше данных будет утрачена.

Другим примером сжатия с потерями является изображение в формате JPEG. Чем больше оно сжато, тем больше данных теряется, и тем заметнее будет сжатие. Утилита сжатия JPEG попытается найти поля цвета, которые достаточно близки друг к другу, и заменяет все такие поля одним цветом. Чем больше степень сжатия, тем больше цветов будет объединено таким образом.

Альтернативным методом является сжатие без потерь; эта технология создает файл меньший, чем исходный, но такой файл можно использовать для восстановления исходного файла. В этом руководстве рассматривается только сжатие без потерь. Этот тип не использует методы аппроксимации для сжатия данных, вместо этого здесь применяются определенные алгоритмы для распознавания повторяющихся частей файла. Такие части удаляются и заменяется заполнителями. Дальнейшие повторения шаблона заменяются одним и тем же заполнителем.

Это позволяет компьютеру использовать меньше дискового пространства для хранения данных. Чтобы понять, как это работает, представьте список переменных: он определяет данные, которые в дальнейшем используются для написания программы. По сути, из этих двух этапов и состоит сжатие без потерь: повторяющиеся значения сопоставляются с шаблоном, на который можно легко сослаться, после чего каждое из этих значений в файле заменяется ссылкой.

Кроме того, современные методы сжатия без потерь считаются адаптивными. Это означает, что они не анализируют весь входной файл сразу и не создают из него «словарь» ссылочных подстановок. Вместо этого они анализируют файл по мере его поступления и переписывают словарь в зависимости от того, какие данные повторяются в файле. В процессе сжатия словарь постепенно становится более эффективным.

Основы архивирования

Раньше данные с серверов часто архивировались в ленточные архивы – это магнитные ленточные устройства, которые могут хранить последовательные данные. В некоторых отраслях этому методу резервного копирования по-прежнему отдают предпочтение. Чтобы сделать архивирование более продуктивным, была создана программа tar. Она позволяет ссылаться на файлы и управлять ими в виде одного файла, не влияя на права и метаданные файлов. В дальнейшем файл или всю файловую систему можно извлечь из архива.

В целом, tar – это формат, который обеспечивает удобное распространение, хранение, резервное копирование и управление группами связанных файлов.

В данном руководстве речь также пойдёт об архивах, поскольку они часто используют сжатие для более производительного хранения данных.

Инструменты сжатия

Linux предоставляет несколько инструментов сжатия. Каждый из них имеет свои преимущества и недостатки. Основное внимание следует уделить инструментам сжатия, которые работают с tar, потому что они гораздо более гибкие, чем остальные инструменты.

Утилита gzip

gzip – это уже классический инструмент сжатия данных в Linux. Он появился в 1992 году и до сих пор находится в разработке.

Одно из главных преимуществ инструмента gzip – его скорость. Он может сжимать и распаковывать данные с гораздо более высокой скоростью, чем некоторые другие популярные технологии (особенно если сравнить наиболее компактные форматы сжатия каждой утилиты). Он также очень эффективен в плане использования памяти при сжатии и распаковке и не требует больше памяти при оптимизации сжатия.

Ещё одним преимуществом gzip является совместимость. Поскольку gzip – очень старый инструмент, почти все системы Linux независимо от возраста поддерживают gzip.

Его самый большой недостаток заключается в том, что он сжимает данные менее тщательно, чем некоторые другие средства сжатия. Если вы часто сжимаете и распаковываете большое количество данных, gzip вполне подходит; но если вы планируете сжать файл один раз и сохранить его, тогда лучше рассмотреть другие варианты.

Обычно файлы gzip имеют расширение .gz. Чтобы сжать файл с помощью gzip, нужно ввести:

Команда сожмет файл и переименует его в sourcefile.gz.

Чтобы выполнить рекурсивное сжатие каталога, добавьте флаг –r:

gzip -r directory1

Эта команда сожмет все файлы в каталоге. Обычно этот метод использовать не рекомендуется; лучший результат можно получить путем архивации каталога и сжатия итогового файла.

Чтобы получить больше информации о сжатом файле, используйте флаг -l, который выдаст статистику:

gzip -l test.gz
compressed uncompressed ratio uncompressed_name
5133 14073 63.7% test

gzip -c test > test.gz

gzip -9 compressme

Чтобы распаковать файл, добавьте флаг –d (также можно использовать псевдоним gunzip).

Инструмент bzip2

bzip2 – еще один популярный формат и инструмент сжатия. Он немного младше gzip, вышел в 1996 году. Сегодня bzip2 считается традиционной альтернативой gzip.

Если gzip работает на алгоритме DEFLATE, то инструмент bzip2 – это реализация алгоритма Берроуза-Уилера. Это различие в методологии приводит к тому, что инструмент bzip2 довольно сильно отличается от gzip.

Наиболее важным преимуществом bzip2 для большинства пользователей является более высокая степень сжатия, которая достигается за счет увеличения времени сжатия. Инструмент bzip2 может создавать значительно более компактные файлы, чем gzip, но для этого требуется гораздо больше времени (из-за более сложного алгоритма).

К счастью, на распаковку уходит гораздо меньше времени, чем на сжатие. Поэтому формат bzip2 часто используется для распространения файлов: потратив больше времени на сжатие, вы получаете файлы меньшего объема, которые легко распространять и можно быстро распаковать. На распаковку у bzip2 все же уходит намного больше времени, чем у gzip.

Также следует иметь в виду, что у bzip2 требования к памяти больше, чем у gzip. Это не повлияет на работу большинства машин, но вполне может отразиться на работе небольших встроенных устройств. Опционально можно передать флаг -s, который сократит требования к памяти примерно наполовину, но также приведет к снижению степени сжатия.

Обычно файлы, сжатые с помощью этого инструмента, имеют расширение .bz2.

Чтобы сжать файл, введите:

Эта команда сожмет файл и присвоит ему имя afile.bz2.

Вы можете передать флаг -s, чтобы утилита работала в режиме экономии памяти. Это понизит качество сжатия, но, с другой стороны, не потратит столько ресурсов.

bzip2 поддерживает числовые флаги, но их действие несколько отличается от флагов gzip. В bzip2 они представляют размер блока, который утилита использует при сжатии. Этот параметр определяет отношение использования памяти к сжатию, а не скорость. По умолчанию используется флаг -9 (относительно высокое использование памяти, но высокое качество сжатия).

Чтобы распаковать файл, используйте флаг –d:

bzip2 -d file.bz2

Эта команда вернёт распакованный файл по имени file.

Утилита xz

xz является относительно новым механизмом сжатия. Инструмент вышел в 2009 году и с тех пор стабильно обновляется.

Утилита xz использует алгоритм сжатия LZMA2. Этот алгоритм имеет более высокий коэффициент сжатия, чем предыдущие два, благодаря чему он отлично подходит для хранения данных на небольшом диске. Он создает файлы меньшего размера.

Хотя сжатые с помощью xz файлы весят меньше, чем файлы, сжатые с помощью других утилит, для сжатия требуется значительно больше времени. Например, на сжатие довольно большого файла с аргументами и флагами у gzip уйдет около половины минуты, bzip2 может потратить где-то около минуты, а у xz эта операция может занять около четырех или пяти минут.

Инструмент сжатия xz также использует много памяти (иногда столько же, сколько и предыдущие инструменты). Конечно, если на сервере достаточно памяти, это не будет проблемой, но эту характеристику нужно учитывать при выборе.

Хотя сжатие может занять намного больше времени, чем хотелось бы, на распаковку времени уходит довольно мало. Конечно, скорость распаковки xz никогда не достигает показателей gzip, но обычно она значительно превышает скорость bzip2. Использование памяти приемлемое (но относительно других инструментов довольно высокое).

Все эти преимущества и недостатки говорят о том, что этот формат отлично подходит для распространения программного обеспечения. С помощью этой утилиты вы можете предоставить пользователям компактный файл, который быстро распаковывается.

Ещё один недостаток xz – утилита не поддерживается некоторыми старыми системами.

Файлы, созданные с помощью xz, обычно используют расширение .xz.

Чтобы сжать файл, введите:

Эта команда создаст сжатый файл file.xz.

Запросить статистику сжатия можно с помощью флага –l:

xz -l test.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 5,016 B 13.7 KiB 0.356 CRC64 test.xz

xz -c test > test.xz

Утилита xz также поддерживает числовые флаги. Чем меньше число, тем быстрее сжатие (-0 обеспечивает самую высокую скорость сжатия). По умолчанию используется значение -6.

Если вы хотите увеличить качество сжатия и не беспокоитесь о памяти и времени, которое уйдет на выполнение процедуры, используйте флаг –е, который включает режим сжатия «extreme». Его производительность можно настраивать с помощью числовых флагов.

xz -e -9 large_file

Чтобы распаковать файлы, используйте флаг –d.

xz -d large_file.xz

В результате получится распакованный файл large_file.

Архивирование и сжатие

Отдельные методы сжатия производительны сами по себе, но чаще всего они дают лучший результат в комбинации с tar. Это позволяет сохранять структуры каталогов, права на файлы и т. п.

Команду tar очень легко совмещается с сжатием. Она поддерживает флаги командной строки, которые можно использовать для автоматического вызова того или иного инструмента сжатия после завершения процесса архивирования.

Комбинация tar и gzip

Чтобы создать архив tar, который можно будет сжать утилитой gzip, передайте флаг –z. Он включает сжатие создаваемого архива. Перед флагами команды tar не ставится тире. Чтобы создать сжатый архив, обычно используется команда:

tar czvf compressed.tar.gz directory1

  • c архивирует каталог directory1.
  • v включает расширенный вывод.
  • z включает сжатие gzip.
  • f передаст вывод в сжатый файл compressed.tar.gz.

Как только файл будет создан, можно заглянуть внутрь. Для этого используйте флаг t вместо с.

Чтобы распаковать архив, используйте флаг x:

tar xzvf compressed.tar.gz

Структура каталогов архива будет перемещена в текущий каталог.

Комбинация tar и bzip2

Чтобы сжать архив с помощью bzip2, замените флаг z (который вызывает gzip) флагом j.

tar cjvf bzipcompressed.tar.bz2 directory2

Создав файл, вы можете просмотреть его:

Чтобы распаковать архив в текущий каталог, введите:

tar xjvf bzipcompressed.tar.bz2

Комбинация tar и xz

Чтобы сжать архив с помощью xz, используйте флаг J:

tar cJvf xzcompressed.tar.xz directory3

Чтобы просмотреть содержимое файла, используйте:

Чтобы распаковать архив в текущий каталог, введите:

tar xJvf xzcompressed.tar.xz

Заключение

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

Выбирая инструмент сжатия, важно знать о недостатках производительности и проблемах совместимости различных утилит.


Установить ImageMagick

Чтобы установить пакет ImageMagick, откройте окно терминала и введите следующую команду, указанную в вашей ОС.

Ubuntu

Debian

Arch Linux

Fedora

OpenSUSE

Другие Linux

Как было сказано ранее, ImageMagick является важным компонентом того, как многие программы отображают изображения и управляют ими в программах в Linux. При этом ваш дистрибутив может использовать альтернативу. Найдите в диспетчере пакетов вашей операционной системы «ImageMagick» и установите его. После установки у вас будет доступ к Convert.

Проверь это - Как отключить обнаружение и распознавание лиц на фотографиях в Windows 10

Сжать изображения с помощью Convert

Сжатие изображений часто может снизить их качество. Чтобы файлы изображений меньшего размера выглядели красиво, лучше всего изменить их размер. Такой путь может помочь сохранить общее качество изображения при гораздо меньшем размере файла.

Чтобы изменить размер с помощью Convert, откройте окно терминала, найдите файл изображения, которым вы хотите управлять, а затем используйте команду CD, чтобы переместить терминал в его местоположение. В этом примере файлы изображений будут в / home / username / pictures /.

Используйте команду convert, чтобы изменить размер. Попробуйте изменить размер изображения примерно на 20%, так как это дает хороший баланс качества и размера файла. Если вам нужно опуститься ниже 20%, попробуйте 25%, 30% или 40%. Помните, что чем больше размер изображения, тем ниже его качество.

Convert работает с разными типами файлов, кроме JPG, использованного в примере. Чтобы изменить размер, измените эту команду, указав правильное расширение файла и новый размер. Убедитесь, что вы указали и исходное имя файла, и имя выходного файла.

Сжать несколько изображений

Convert отлично подходит для манипулирования и сжатия одного изображения за раз, но сжимать изображения одно за другим утомительно. хорошая новость заключается в том, что Convert можно манипулировать с помощью bash для анализа и одновременной работы с несколькими файлами изображений.

Примечание. Пакетное сжатие файлов изображений с несколькими именами, скорее всего, не сработает. Только пакетное преобразование файлов с одним и тем же типом файлов.

Пакетное преобразование легко, и оно начинается с создания папки для работы. Хорошо иметь папку для всех этих файлов изображений, которые вы планируете преобразовать, в противном случае десятки файлов изображений засорят вашу файловую систему. Используя команду mkdir, создайте рабочий каталог.

Затем откройте приложение диспетчера файлов, найдите вновь созданную папку и переместите все файлы изображений, которые вы планируете преобразовать, в эту папку. После перемещения файлов используйте команду CD в терминале, чтобы также перейти в новую папку.

В терминале введите эту команду. Он скажет Convert изменить размер нескольких файлов одновременно, создавая выходные файлы с «изменением размера» в конце. В коде команда будет искать изображения JPG. Если вы работаете с файлами PNG или другим форматом, поддерживаемым приложением Convert, измените * .jpg на * .jpg и т. Д.

Сценарий изменения размера

Команда пакетного изменения размера хороша тем, что работает очень хорошо. Однако необходимость набирать длинную команду и каждый раз настраивать ее может раздражать. Чтобы сократить работу, подумайте о том, чтобы превратить ее в сценарий. Откройте окно терминала и используйте сенсорную команду для создания нового файла. Этот файл будет содержать код для нашего сценария преобразования.

Проверь это - Как перейти на Libre Office 6.0 в Linux


Затем откройте текстовый редактор Nano.

Вставьте следующий код в файл сценария:

echo «Введите расширение файлов изображений:»

для img в файлах *. $; делать
convert -resize 20% «$ img» «resize- $ img»
сделано

Сохраните скрипт изменения размера в Nano, нажав Ctrl + O. Закройте редактор, нажав Ctrl + X.

Обновите разрешения скрипта, чтобы он запустился. Не пропускайте эту часть, иначе скрипт будет работать некорректно!

Чтобы использовать скрипт, поместите все файлы изображений, которые вы хотите преобразовать, в

/ Pictures / Convert-Images /. Затем вставьте CD и выполните сценарий. При вводе расширения файла (например, JPG, PNG и т.д.) не используйте точку, иначе скрипт сломается!

Читайте также: