Linux cat tar gz

Содержание
  1. Использование tar в Linux и FreeBSD для работы с архивами
  2. Создание и распаковка архивов
  3. Создать
  4. Распаковать
  5. Примеры
  6. Распаковать в определенную папку
  7. Распаковка без вложенной папки
  8. Исключение файлов по маске
  9. Работа с архивами, разбитыми на части
  10. Описание ключей tar
  11. Команды для действия
  12. Дополнительные опции
  13. Windows
  14. How to extract multiple tar ball (*.tar.gz) files in directory on Linux or Unix
  15. The problem with multiple tar ball files on Linux/Unix
  16. Method #1: Untar and extract multiple tar ball files using bash for loop
  17. Method #2: Untar multiple tarballs using bash/sh/ksh pipes
  18. How To Extract a Tar Files To a Different Directory on a Linux/Unix-like Systems
  19. Understanding tar extracting CLI options
  20. Wrapping up
  21. Команда cat в Linux / Unix с примерами
  22. Cинтаксис команды cat
  23. Команда cat в Linux с примерами
  24. Отображение файла с помощью команды cat
  25. Создать файл с помощью команды cat
  26. Просмотр большого файла с помощью cat Command и Shell Pipes
  27. Как объединить два или более файлов с помощью команды cat
  28. Как добавить данные в текстовый файл
  29. Задача: пронумеровать все выходные строки
  30. Как просмотреть непечатаемые символы
  31. Просмотр всех файлов
  32. Распечатать файлы
  33. Присоединение к двоичным файлам
  34. Программы обмана
  35. Тестирование аудиоустройства
  36. Сбор системной информации Linux
  37. Отображение больших блоков текстовых данных в скрипте

Использование 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

Работа с архивами, разбитыми на части

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

Читайте также:  Обновление для mac os lion

Чтобы создать архив, разбитый на части, вводим команду:

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:

Источник

Читайте также:  Inaccessible boot device windows 10 как исправить acer
Оцените статью