- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Windows
- How to extract multiple tar ball (*.tar.gz) files in directory on Linux or Unix
- The problem with multiple tar ball files on Linux/Unix
- Method #1: Untar and extract multiple tar ball files using bash for loop
- Method #2: Untar multiple tarballs using bash/sh/ksh pipes
- How To Extract a Tar Files To a Different Directory on a Linux/Unix-like Systems
- Understanding tar extracting CLI options
- Wrapping up
- Команда cat в Linux / Unix с примерами
- Cинтаксис команды cat
- Команда cat в Linux с примерами
- Отображение файла с помощью команды cat
- Создать файл с помощью команды cat
- Просмотр большого файла с помощью cat Command и Shell Pipes
- Как объединить два или более файлов с помощью команды cat
- Как добавить данные в текстовый файл
- Задача: пронумеровать все выходные строки
- Как просмотреть непечатаемые символы
- Просмотр всех файлов
- Распечатать файлы
- Присоединение к двоичным файлам
- Программы обмана
- Тестирование аудиоустройства
- Сбор системной информации Linux
- Отображение больших блоков текстовых данных в скрипте
Использование tar в Linux и FreeBSD для работы с архивами
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -xvf archive.tar.gz
Примеры
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
tar -xvjf archive.tar.bz2
* ключ j отвечает за работу с bz2.
Если система ругается на bzip2, значит нужно его установить:
yum install bzip2
apt-get install bzip2
pkg install bzip2
* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).
Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:
bzip2 -d archive.tar.bz2
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
Распаковать в определенную папку
tar -C /home/user -xvf archive.tar.gz
* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.
Распаковка без вложенной папки
Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:
tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1
* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.
Исключение файлов по маске
Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:
tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:
tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/
* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp
Работа с архивами, разбитыми на части
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf — /root | split -b 100M — root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
Описание ключей tar
Команды для действия
Ключ | Описание |
---|---|
-A | Добавление файлов в архив. |
-c | Создание нового архивного файла. |
-d | Показать отличающиеся данные между каталогом-исходником и содержимым архива. |
—delete | Удалить файлы внутри архива. |
-r | Добавить файлы в конец архива. |
-t | Показать содержимое архива. |
-u | Добавить файлы, которых нет в архиве. |
-x | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
—atime-preserve | Оставить прежнюю метку времени доступа для файла. |
-b N | Задать размер блока N x 512. |
-C | Смена каталога. По умолчанию, используется тот, в котором мы находимся. |
—checkpoint | Показать имена папок при чтении архивного файла. |
-G | Использование старого формата инкрементального резервирования при отображении или извлечения. |
-g | Использование нового формата инкрементального резервирования при отображении или извлечения. |
-h | Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки. |
-i | Игнорировать блоки нулей. |
-j | Использование bzip2. |
—ignore-failed-read | Игнорировать не читаемые файлы. |
-k | При распаковке, существующие файлы не заменяются соответствующими файлами из архива. |
-L N | Смена магнитной ленты после N*1024 байт. |
-m | При извлечении игнорировать время модификации объекта. |
-M | Многотомные архивы. |
-N DATE | Сохранять только более новые файлы относительно DATE |
-O | Направление извлекаемого на стандартный вывод. |
-p | Извлечение защищенной информации. |
-P | Не отбрасывает начальный слэш (/) из имен. |
-s | Сортировка файлов при извлечении. |
—preserve | Аналогично -ps |
—remove-files | Удалить исходные файлы после добавления в архив. |
—same-owner | Сохранить владельца при извлечении. |
—totals | Вывод байт при создании архива. |
-v | Протоколирование действий — отображение списка объектов, над которыми происходит действие. |
-V NAME | Создание архива на томе с меткой NAME. |
—version | Показать версию tar. |
-w | Требовать подтверждения для каждого действия. |
-W | Проверка архива после записи. |
—exclude FILE | Исключить файл FILE. |
-X FILE | Исключить файлы FILE. |
-Z | Фильтрует архив с помощью compress. |
-z | Использование gzip. |
* актуальный список опций можно получить командой man tar.
Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:
yum install zip unzip
apt-get install zip unzip
pkg install zip unzip
* соответственно, для RPM based, deb based, BSD based.
zip -r archive.zip /home/dmosk
* создает архив каталога /home/dmosk в файл archive.zip.
Windows
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Источник
How to extract multiple tar ball (*.tar.gz) files in directory on Linux or Unix
I have tried tar -xvf *.tar.gz command, but getting an error that read as:
tar (child): *.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
> tar: Child returned status 2
tar: Error is not recoverable: exiting now
How can I extract multiple *.tar.gz files in directory using Linux or Unix-shell prompt?
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | No |
Requirements | tar with Bash/KSH |
Est. reading time | 3 minutes |
Linux or Unix-like system use the tar command to list, test, or extract files from a tar ball archive, commonly found on Unix-like systems including macOS, FreeBSD, OpenBSD, NetBSD and Linux distros. Let us see how to extract multiple tar ball files in a dirctory.
The problem with multiple tar ball files on Linux/Unix
Assuming that you have three files in the current directory as follows:
Let us verify it with the ls command $ ls
Here are my tar balls:
To untar all *.tar.gz file, enter:
$ tar xvf *.gz
# or #
$ tar -zxvf *.tar.gz
# or #
$ tar xvf «*.gz»
# trying *.gz files #
$ tar -zxvf ‘*.gz’
Sample outputs:
Fig.01: Extract multiple .tar.gz files
Method #1: Untar and extract multiple tar ball files using bash for loop
Verify it:
ls
Sample outputs:
Method #2: Untar multiple tarballs using bash/sh/ksh pipes
The syntax is:
cat *.tar.gz | tar zxvf — -i
cat *.tgz | tar zxvf — -i
cat *.tar.xz | tar Jxvf — -i
cat *.tar.bz2 | tar jxvf — -i
Sample outputs:
NOTE: The -i option force the tar command to ignore zeroed blocks in archive (EOF). This is needed if you are using method #2.
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
How To Extract a Tar Files To a Different Directory on a Linux/Unix-like Systems
Pass the -C dir option. For instance:
Understanding tar extracting CLI options
Where the tar command are as follows:
- z : Filter the archive through gzip command
- x : Extract option
- v : Verbose output. In other words, show progress while extracting files
- f : Filename to work on
- i : See note above.
- J : Filter for .xz file. See how to extract xz files for more info.
- j : Filter for .bz2 file
- — : Read from pipe or stdin
- C DIR_NAME : Cd in to the DIR_NAME before performing extract operations.
Wrapping up
We explained how to extract multiple tar ball files on Linux and Unix-like systems. See tar man page using the man command:
% man tar
% man bash
% help for
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
Команда cat в Linux / Unix с примерами
Я новый пользователь систем Linux и Unix. Как мне использовать команду cat в Linux или Unix-подобных операционных системах? Можете ли вы предоставить основные примеры и использование синтаксиса для команды cat?
Команда cat (сокращение от concatenate) — одна из наиболее часто используемых гибких команд в операционных системах Linux, Apple Mac OS X, Unix, * BSD (FreeBSD / OpenBSD / NetBSD).
Базовые файловые операции с текстовым файлом, такие как отображение или создание новых файлов.
Cинтаксис команды cat
Базовый синтаксис следующий:
cat [options] filename
cat file1
cat > file2
cat file3 | command
cat file4 | grep something
Команда cat в Linux с примерами
Это стандартная программа Unix, используемая для объединения и отображения файлов. Команда cat отображает содержимое файла на экране. Также вы можете использовать команду cat для быстрого создания файла. Команда cat может читать и записывать данные со стандартных устройств ввода и вывода. Обратите внимание, что некоторые из следующих параметров будут работать только с версией GNU команды cat.
Отображение файла с помощью команды cat
Чтобы просмотреть файл, введите:
cat filename
cat /path/to/file
cat /etc/passwd
Создать файл с помощью команды cat
Чтобы создать файл с именем «foo.txt», введите:
cat >foo.txt
Введите следующий текст:
Вам нужно нажать [CTRL] + [D] т.е. удерживайте нажатой кнопку управления, затем нажмите d. Символ> сообщает системе Unix / Linux, что набранные данные должны быть сохранены в файле с именем foo.txt ( дополнительную информацию см. В stdout ). Для просмотра файла используйте команду cat следующим образом:
cat foo.txt
Просмотр большого файла с помощью cat Command и Shell Pipes
Если файл слишком велик, чтобы поместиться на экране компьютера, текст будет прокручиваться вниз с высокой скоростью. Вы не сможете читать. Чтобы решить эту проблему, передайте вывод команды cat команде more или less следующим образом:
cat bigfile | more
cat bigfile | less
Команда more и less действует как фильтры оболочки . Однако вы можете пропустить команду cat и напрямую использовать команду more & less для Linux / Unix следующим образом:
more bigfile
less bigfile
Как объединить два или более файлов с помощью команды cat
Вы можете объединить два файла и создать новый файл с именем report.txt, введите:
cat score.txt names.txt > report.txt
cat report.txt
Как добавить данные в текстовый файл
Чтобы добавить (добавить данные к существующим) данные в файл с именем foo.txt, введите:
Задача: пронумеровать все выходные строки
Введите следующую команду:
cat -n filename
cat —number filename
Как просмотреть непечатаемые символы
Чтобы отобразить символы TAB как ^ I, введите::
cat -T filename
Чтобы отобразить $ в конце каждой строки, введите:
cat -E filename
cat —show-ends filename
Используйте нотацию ^ и M-, кроме LFD и TAB, и показывайте все непечатаемые:
cat -v filename
cat —show-nonprinting filename
Чтобы показать все, введите:
cat -A fileName
ИЛИ
cat -vET fileName
Примеры выходных данных:
Просмотр всех файлов
Вы можете просто использовать подстановочный знак оболочки следующим образом:
cat *
Чтобы просмотреть только файлы (c) * .c, введите:
cat *.c
Другой вариант — bash for loop или ksh for loop :
#!/bin/bash
for f in /source/project10/*.pl
do
echo «***** [Start $f ] ****»
cat -n «$f»
echo «***** [End $f ] ****»
done
ИЛИ то же самое с использованием оболочки ksh :
#!/bin/ksh
for f in $(ls /source/project10/*.pl)
do
print «*** [Start $f ] ****»
cat «$f»
print «*** [End $f ] ****»
done
Распечатать файлы
Вы можете напрямую отправить файл на печатающее устройство, такое как /dev/lp
cat resume.txt > /dev/lp
В современных системах /dev/lp может не существовать, и вам необходимо распечатать файл с помощью такого инструмента, как lpr:
cat resume.txt | lpr
ИЛИ
lpr resume.txt
Присоединение к двоичным файлам
Вы можете объединять двоичные файлы. В старые добрые времена большинство загрузок по FTP / HTTP ограничивалось 2 ГБ. Иногда для экономии трафика размер файлов ограничивался 100 МБ. Давайте воспользуемся командой wget для получения некоторых файлов (скажем, large.tar.gz был разделен на 3 файла на удаленном URL-адресе):
Теперь легко объедините такие файлы (загруженные * .bin) с помощью команды cat:
wget url/file1.bin
wget url/file2.bin
wget url/file3.bin
cat file1.bin file2.bin file3.bin > large.tar.gz
### extract it
tar -zxvf large.tar.gz
Другой пример с командой rar под Unix и Linux:
Программы обмана
Вы можете использовать команду cat, чтобы обмануть многие программы. В этом примере bc считает, что он не запущен на терминалах, и не отображает сообщение об авторских правах. Вывод по умолчанию:
bc -l
Примеры сеанса:
Теперь попробуйте с помощью команды cat:
bc -l | cat
Примеры сеанса:
Тестирование аудиоустройства
Вы можете отправлять файлы на звуковые устройства, такие как /dev/dsp или /dev/audio чтобы убедиться, что вывод и ввод звука работают:
cat filename >/dev/dsp
cat recording.au >/dev/audio
Вы можете просто использовать следующую команду для записи голосового фрагмента и воспроизвести его с помощью команды cat:
Сбор системной информации Linux
### To see CPU information ###
cat /proc/cpuinfo ### To see memory information ###
cat /proc/meminfo ### To see Linux kernel version ###
cat /proc/version
Отображение больших блоков текстовых данных в скрипте
Вы можете использовать здесь документ для отображения больших блоков текстовых данных в скрипте, например help:
Источник