Вы находитесь на странице: 1из 21

РАБОТА С ФАЙЛАМИ И

КАТАЛОГАМИ В LINUX

1
Содержание
1 Работа с файлами и каталогами..............................................................................................................3
1.1 Именование файлов и каталогов....................................................................................................3
1.2 Вывод информации о файлах и каталогах.....................................................................................4
2 Создание, копирование и удаление файлов в Linux.............................................................................9
2.1 Создание пустого файла...................................................................................................................9
2.2 Создание папок в Linux....................................................................................................................9
2.3 Копирование файла........................................................................................................................10
2.4 Перемещение и переименование файла ....................................................................................10
2.5 Удаление файла..............................................................................................................................11
3 Поиск файлов в Linux.............................................................................................................................11
3.1 Поиск исполняемой программы...................................................................................................11
3.2 Поиск файлов через базу данных.................................................................................................11
3.3 Поиск по текстовому содержимому.............................................................................................12
3.4 Подсчет слов в файле.....................................................................................................................14
4 Права доступа файлов и папок в Linux.................................................................................................14
4.1 Система прав доступа файлов.......................................................................................................14
4.2 Отличия прав доступа для папок..................................................................................................15
4.3 Восьмеричное представление прав.............................................................................................15
4.4 Изменение прав доступа...............................................................................................................16
4.5 Изменение группы и владельца...................................................................................................16
5 Специальные биты доступа в Linux......................................................................................................17
5.1 Роль специальных битов................................................................................................................17
5.2 Бит Setuid.........................................................................................................................................17
5.3 Бит Setgit..........................................................................................................................................18
5.4 Бит Sticky..........................................................................................................................................18
6 Создание и распаковка архивов в Linux...............................................................................................19
6.1 Создание tar-архива без сжатия....................................................................................................19
6.2 Создание архива с использованием сжатия................................................................................20
6.3 Распаковка архива..........................................................................................................................20
6.4 Просмотр содержимого архива без распаковки.........................................................................20
Список вопросов для закрепления материала........................................................................21

2
1 Работа с файлами и каталогами
Данный урок открывает цикл учебных материалов, посвященных файлам и каталогам в
операционной системе Linux. Ниже мы рассматриваем основные принципы работы с ними:
правила именования, специальные символы консольных команд, общая структура директорий.

1.1 Именование файлов и каталогов


Уже не раз отмечалось, что Linux образует уровень абстракции. Текстовая информация,
подключенные устройства, запущенные процессы представлены в системе как файлы. Например,
выполнение команды «cat /proc/loadavg» выведет статистику использования ресурсов процессора.
Таким образом, через чтение файла были получены реальные характеристики системы на текущий
момент времени.
Пример вывода информации о использовании процессора
user@localhost:~$ cat /proc/loadavg
0.96 0.81 0.63 3/822 11004
Пример вывода технических характеристик процессора
user@localhost:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz
...
Именование файлов и каталогов в Linux имеет ряд правил не зависимо от того какую информацию
они содержат. Активным пользователям других операционных систем нужно обратить на это
особое внимание. Может найтись несколько отличий от привычной схемы.
Правила именования файлов и каталогов:
 Имя должно быть не длиннее 255 символов.
 Имена чувствительны к регистру. Например, «example.txt» и «eXaMpLe.txt» являются
разными файлами, даже если расположены в одном каталоге.
 Допускается использование символов нижнего подчеркивания, точек и дефисов.
 Если имя файла или каталога начинается с точки, он будет воспринят системой как скрытый.
 В имени также могут содержаться пробелы. Если консольная команда требует указания
имени файла или директории, в котором содержатся пробелы, его следует заключить в
кавычки. Например, «ls "my directory/user file.xlsx"».
 Допускается использование, как латиницы, так и раскладки национального языка. Linux
полностью поддерживает кодировку UTF-8.
Заметка: Скрытые файлы имеют ряд особенностей. Большинство файловых менеджеров не
показывают их, пока не будет включена соответствующая настройка. Так же консольные команды
Linux работают с ними иначе. Например, вывод команды ls по умолчанию не захватывает скрытое
содержимое.
Структура каталогов
Напомним, что работа с каталогами в Linux строится по оригинальному принципу. Здесь нет
разделения на диски и устройства. Вся структура имеет древовидную форму, начиная от корневого
каталога «/». Другие файловые системы монтируются к ней в определенных местах. Например,
содержимое подключенного флеш-накопителя может быть доступно по адресу

3
«/media/user_name/flash».
Специальные символы
Существует три специальных символа заметно упрощающих использование консольных команд
при работе с файловой системой. Их описание и несколько примеров использования приводятся
ниже.
Специальные файловые символы:
 ~ - домашний каталог текущего пользователя. Неважно где вы находитесь в данный момент.
Использование символа «~» позволит обратиться к любому файлу в личной директории.
Например, команда «cp ~/uploads/best-video.mp4 ~/videos» скопирует скачанное видео в
новую директорию.
 .. - каталог, располагающийся на уровень выше. Если вы находитесь в «/home/user-
name/games», символ «..» будет указывать на «/home/user-name».
 . - текущий каталог. Использование аналогично символу «..», но не отбрасывает текущий
уровень.
Пример удаления файлов из указанного каталога в домашней директории
user@localhost:~$ rm -f ~/programs/old-builds/*
Пример копирования загруженных файлов в текущую директорию
user@localhost:~$ cd ~/new-awesome-videos
user@localhost:~$ cp ~/uploads/*.mp4 .
Пример аналогичного действия, но с перемещением по дереву каталогов
user@localhost:~$ cp ~/uploads/*.mp4 ../../another-user-dir/videos

1.2 Вывод информации о файлах и каталогах


Команда ls – вероятно наиболее используемая команда в любой UNIX-системе. Её
предназначение – вывод информации о файлах и каталогах. Дополнительные опции команды
позволяют получить более подробную информацию и сортировать её определённым образом.
Ниже приведены примеры опций и примеры их использования.
-R Рекурсивно обойти встретившиеся подкаталоги.

Вывести список всех файлов (без этой опции не выводятся скрытые файлы, имена которых
-a
начинаются с точки).

Если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто
-d
используется с флагом -l для получения сведений о состоянии каталога.

-C Вывод в несколько колонок с сортировкой по колонкам.

-x Вывод в несколько колонок с сортировкой по строкам.

-m Вывод в свободном формате, имена файлов разделяются запятыми.

Вывод в длинном формате: перед именами файлов выдается режим доступа, количество
ссылок на файл, имена владельца и группы, размер в байтах и время последней
-l
модификации (см. ниже). Если файл является специальным, то в поле размера выводится
старший и младший номера устройства.

То же, что и -l, но идентификаторы владельца и группы выводятся в виде чисел, а не в виде
-n
имен.

4
-o То же, что и -l, но идентификатор группы не выводится.

-g То же, что и -l, но идентификатор владельца не выводится.

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

Имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие


-t
файлы). По умолчанию используется время последнего изменения. См. также флаги -u и -c.

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


-u
сортировки (с флагом -t) или для вывода (с флагом -l).

Вместо времени последнего изменения использовать время последней модификации


-c описателя файла (т.е. время создания файла, изменения режима доступа к нему и т.п.) для
сортировки (с флагом -t) или для вывода (с флагом -l).

-p Если файл является каталогом, то выдавать после его имени символ /.

Если файл является каталогом, то выдавать после его имени символ /; если файл является
-F
выполняемым, то выдавать после его имени символ *.

-b Выдавать непечатные символы, входящие в имя файла, в восьмеричном виде (ddd).

-q Выдавать непечатные символы, входящие в имя файла, в виде символа ?.

-i Выдавать в первой колонке номера описателей файлов.

-s Выдавать размер файлов в блоках (включая косвенные блоки).

Рассматривать каждый аргумент как каталог и выводить его содержимое. Этот флаг
-f отменяет флаги -l, -t, -s, -r и включает флаг -a. Сортировка имен файлов не производится;
имена выдаются в таком порядке, в каком они перечислены в каталоге.
Теперь несколько примеров наиболее полезных опций.
Пример как вывести список только каталогов:
user@localhost:~$ ls -d -1 /home/user/*/
/home/user/Desktop/
/home/user/Downloads/
/home/user/Dropbox/
/home/user/Images/
/home/user/Soft/
/home/user/Temp/
/home/user/VirtualBox VMs/
То же самое, но с использованием “длинного” (полного) вывода о каталогах:
user@localhost:~$ ls -dl /home/user/*/
drwxr-xr-x 2 user user 4096 May 6 10:22 /home/user/Desktop/
drwxr-xr-x 2 user user 4096 May 5 10:38 /home/user/Downloads/
drwx—— 16 user user 4096 May 6 07:40 /home/user/Dropbox/
drwxr-xr-x 2 user user 4096 May 5 12:00 /home/user/Images/
drwxr-xr-x 2 user user 4096 May 5 18:29 /home/user/Soft/
drwxrwxr-x 2 user user 4096 May 5 20:15 /home/user/Temp/
drwxrwxr-x 4 user user 4096 May 5 19:09 /home/user/VirtualBox VMs/
Ключ -l весьма полезен, так как позволяет проверять владельца и права на файлы/каталоги:
user@localhost:~$ ls -l
total 32

5
drwxr-xr-x 2 root root 4096 Aug 23 2012 bin
drwxr-xr-x 2 root root 4096 Aug 23 2012 etc
drwxr-xr-x 2 root root 4096 Aug 23 2012 games
drwxr-xr-x 2 root root 4096 Aug 23 2012 include
drwxr-xr-x 4 root root 4096 May 5 11:13 lib
lrwxrwxrwx 1 root root 9 May 5 10:22 man -> share/man
drwxr-xr-x 2 root root 4096 Aug 23 2012 sbin
drwxr-xr-x 7 root root 4096 Aug 23 2012 share
drwxr-xr-x 2 root root 4096 Aug 23 2012 src
Для вывода информации о скрытых файлах (начинаются с точки) используйте ключ -a:
user@localhost:~$ ls -la
total 524
drwxr-xr-x 37 user user 4096 May 6 21:20 .
drwxr-xr-x 3 root root 4096 May 5 10:25 ..
drwx------ 3 user user 4096 May 5 10:39 .adobe
-rw------- 1 root root 517 May 5 11:53 .bash_history
-rw-r–-r–- 1 user user 220 May 5 10:25 .bash_logout
-rw-r–-r–- 1 user user 133 May 5 11:52 .bashrc
drwx------ 17 user user 4096 May 5 18:29 .cache
drwxrwxr-x 3 user user 4096 May 5 10:54 .compiz-1
drwx------ 20 user user 4096 May 6 10:38 .config
drwx------ 3 user user 4096 May 5 10:38 .dbus

Кратко остановимся на обозначениях прав доступа и обозначениях файлов/каталогов. Первый
символ:
 d – файл является каталогом;
 b – файл является специальным блочным файлом;
 c – файл является специальным символьным файлом;
 p – файл является именованным каналом;
 – – обычный файл.
Далее следуют три группы символов, обозначающих права доступа – r (read), w (write), x (execute) –
чтение, запись в файл/каталог и выполнение соответственно.
Обычный вывод ls без ключей выводит все файлы/каталоги одной строкой. Что бы вывести их в
колонку – выполняем:
user@localhost:~$ ls -1
Desktop
Downloads
Dropbox
file1.txt
file2.txt
Images
Soft
Temp
VirtualBox VMs
Ключ -h используется для вывода информации о размере в “человеко удобном” виде, т.е. в Kb,
Mb, Gb:
user@localhost:~$ ls -lh
total 36K
drwxr-xr-x 2 user user 4.0K May 6 10:22 Desktop
drwxr-xr-x 2 user user 4.0K May 5 10:38 Downloads
drwx------ 16 user user 4.0K May 6 07:40 Dropbox
-rw-r–-r–- 1 root root 2 May 6 21:06 file1.txt
-rw-r–-r–- 1 root root 2 May 6 21:06 file2.txt

6
drwxr-xr-x 2 user user 4.0K May 5 12:00 Images
drwxr-xr-x 2 user user 4.0K May 5 18:29 Soft
drwxrwxr-x 2 user user 4.0K May 5 20:15 Temp
drwxrwxr-x 4 user user 4.0K May 5 19:09 VirtualBox VMs
Отсортировать файлы/каталоги по их размеру, начиная с самого большого:
user@localhost:~$ ls -lS /var/log/
total 4152
-rw-r–-r–- 1 root root 1823273 May 6 19:46 dpkg.log
-rw-r----- 1 syslog adm 825505 May 6 08:05 syslog.1
-rw-r----- 1 syslog adm 589203 May 6 19:25 kern.log
-rw-r–-r–- 1 root root 47105 Aug 23 2012 bootstrap.log
-rw-r–-r–- 1 root root 37440 May 6 19:46 aptitude
-rw-r–-r–- 1 root root 20584 May 6 07:39 pm-powersave.log
-rw-r----- 1 root adm 14329 May 5 11:38 dmesg.1.gz
-rw-r–-r–- 1 root root 6167 May 6 07:39 kdm.log
drwxr-xr-x 2 root root 4096 May 5 10:25 apt
-rw-r----- 1 root adm 31 Aug 23 2012 boot
-rw-r----- 1 syslog adm 0 May 5 10:38 ufw.log
Осотрировать файлы/каталоги по дате последней модификации, новые – в конце списка:
user@localhost:~$ ls -rtl /var/log/
total 4152
drwx------ 2 speech-dispatcher root 4096 Feb 6 2012 speech-dispatcher
drwxr-xr-x 2 root root 4096 Mar 12 2012 unattended-upgrades
drwxr-xr-x 2 root root 4096 Aug 10 2012 dist-upgrade

-rw-r–-r–- 1 root root 47105 Aug 23 2012 bootstrap.log

-rw-r–-r–- 1 root root 2990 May 5 19:20 fontconfig.log

-rw-r----- 1 syslog adm 60874 May 6 21:14 syslog
Что бы вывести новые в начале списка – используйте комбинацию опций без ключа -r:
user@localhost:~$ ls -tl /var/log/
То же самое, но сортировать по дате последнего доступа к файлу, а не дате его модификации,
используйте ключ -u:
user@localhost:~$ ls -tlu /var/log/
Вывести список файлов/каталогов, разделённый на 5 колонок, разделённых на всю ширину
окна:
user@localhost:~$ ls /usr/local | pr -T5 -W$COLUMNS
bin games lib sbin src
etc include man share
Добавлять символ обозначения принадлежности файла/каталога – каталог (/), исполняемый
файл (*), FIFO (|), символьная ссылка (@), сокеты семейства AF_UNIX (=):
user@localhost:~$ ls -F -1
Desktop/
Downloads/
Dropbox/
file1
file1.txt
file2
file2.txt
file3
file4.txt@
Images/
Soft/
Temp/

7
VirtualBox VMs/
Впрочем, ту же информацию выводит и ls -l – первый символ d для каталогов (directory) и ->; для
ссылок:
user@localhost:~$ ls -l
total 36
drwxr-xr-x 2 user user 4096 May 6 10:22 Desktop

lrwxrwxrwx 1 root root 9 May 6 21:20 file4.txt -> file1.txt
Выводить список через запятую:
user@localhost:~$ ls -m
Desktop, Downloads, Dropbox, file1, file1.txt, file2, file2.txt, file3,
file4.txt, Images, Soft, Temp, VirtualBox VMs
Вывести список рекурсивно, включая подкаталоги и их содержимое:
user@localhost:~$ ls -R
.:
Desktop
Downloads
Dropbox
Images
Soft
Temp
VirtualBox VMs

./Desktop:
PDF-Viewer.desktop
PDF-Viewer.lnk

./Downloads:

./Dropbox:
172210-1920×1080.jpg
271027-1366×768.jpg

Остортировать файлы/каталоги в обратном алфавитном порядке:
user@localhost:~$ ls -r
VirtualBox VMs Temp Soft Images file4.txt file3 file2.txt file2
file1.txt file1 Dropbox Downloads Desktop
Вывести информацию о номерах inode файлов и каталогов:
user@localhost:~$ ls -i -1
2368762 Desktop
1969746 Downloads
1987155 Dropbox
1987223 file1
1969890 file1.txt
1987865 file2
1969805 file2.txt
1987866 file3
1987863 file4.txt
1969751 Images
2141585 Soft
2368300 Temp
2141811 VirtualBox VMs
Вывести информацию о пользователе/группе в виде UID и GID, вместо символьных имён:
user@localhost:~$ ls -n
total 36
drwxr-xr-x 2 1000 1000 4096 May 6 10:22 Desktop

8
drwxr-xr-x 2 1000 1000 4096 May 5 10:38 Downloads
drwx------ 16 1000 1000 4096 May 6 07:40 Dropbox
-rw-r–-r–- 1 0 0 0 May 6 21:10 file1
-rw-r–-r–- 1 0 0 2 May 6 21:06 file1.txt
-rw-r–-r–- 1 0 0 0 May 6 21:10 file2
-rw-r–-r–- 1 0 0 2 May 6 21:06 file2.txt
-rw-r–-r–- 1 0 0 0 May 6 21:10 file3
lrwxrwxrwx 1 0 0 9 May 6 21:20 file4.txt -> file1.txt
drwxr-xr-x 2 1000 1000 4096 May 5 12:00 Images
drwxr-xr-x 2 1000 1000 4096 May 5 18:29 Soft
drwxrwxr-x 2 1000 1000 4096 May 5 20:15 Temp
drwxrwxr-x 4 1000 1000 4096 May 5 19:09 VirtualBox VMs

2 Создание, копирование и удаление файлов в Linux

2.1 Создание пустого файла


Выполнить данную операцию в Linux можно несколькими способами. Целесообразнее всего
использовать команду touch. Она применяется для обновления времени доступа к файлу, но в
случае отсутствия создает его. После команды touch необходимо указать место расположения
создаваемого файла. Если требуется создать несколько файлов, просто запишите их имена через
пробел. Например, «touch имя_первого_файла директория/имя_второго_файла»
Остальные способы вы можете увидеть в примере, приведенном ниже. Они не так очевидны и
больше всего похожи на нецелевое использование возможностей операционной системы.
Поэтому, если вы создаете файл внутри Bash-скрипта лучше использовать touch.
Пример базового способа создания файла
user@localhost:~$ touch ~/todo-list.txt
Пример других неочевидных способов
user@localhost:~$ > ~/name_file
user@localhost:~$ echo > todo-list.txt
user@localhost:~$ cp /dev/null todo-list.txt
user@localhost:~$ cat > todo-list.txt

2.2 Создание папок в Linux


Создание папок в Linux выполняется с помощью замечательной утилиты — mkdir. Все что она
может — это создавать папки. Рассмотрим ее синтаксис:
user@localhost:~$ mkdir опции имя_папки
Опций в утилиты не так много, а передавать программе вы чаще всего будете только один
параметр — имя папки
Для создания каталога в текущей директории наберите следующую команду:
user@localhost:~$ mkdir folder1
В текущей директории будет создана папка с указанным именем. Если нужно создать папку в
другой директории, перед именем укажите путь к той директории:
user@localhost:~$ mkdir home/user/Downloads/folder
Утилита создаст папку в подпапке Downloads. Можно использовать не только путь относительно
текущей папки, но и указать полный путь в файловой системе:
user@localhost:~$ mkdir ~/Downloads/folder
user@localhost:~$ mkdir home/user/folder
Например, нам нужно создать несколько папок, тогда можно сделать все одной командой:
user@localhost:~$ mkdir {folder1,folder2,folder3}
Если нужно создать папку Ubuntu, а в ней еще несколько папок, можно воспользоваться

9
командой:
user@localhost:~$ mkdir -p ~/Downloads/Ubuntu/folder/folder/folder
Или, например, сложная структура:
user@localhost:~$ mkdir -p
~/Downloads/Ubuntu/folder/{folder1,folder2,folder3}

2.3 Копирование файла


Копирование файла в Linux происходит с помощью команды cp. Общий принцип использования
довольно прост. После команды cp, через пробел указываются имена файлов, предназначенных
для копирования, а последний параметр будет считаться местом назначения. Также для захвата
нескольких фалов вы можете использовать механизмы подстановки. В общем виде команда
копирования может выглядеть как :
«cp имя_первого_файла имя_второго_файла место_назначения».
Обратите внимание: Linux при копировании позволяет задать новому файлу другое имя. Это
возможно при явном указании имени в последнем параметре. Если местом назначения является
директория, новый файл будет размещен в неё и назван как оригинал.
Пример копирования с изменением имени
user@localhost:~$ cp docs/file.txt archive/old-file.txt
Пример копирования с сохранением имени
user@localhost:~$ cp docs/file.txt archive
Пример копирования файлов подстановкой
user@localhost:~$ cp docs/*.txt archive

2.4 Перемещение и переименование файла


Команда mv — перемещение, переименование файла (каталога)
Команда mv чем та похоже на команду cp, но в отличии команды cp которая копирует файл,
команда mv удаляет исходный файл (перемещает).
Например, переместим файл с одной папки в другую:
user@localhost:~$ mv /folder1/file1 /folder2/file1
Так же можно переместить файл с одной папки в другую и переименовать файл:
user@localhost:~$ mv /folder1/file1 /folder2/file2
Если необходимо просто переименовать файл, то используем следующую команду:
user@localhost:~$ mv /folder1/file1 /folder1/file2
Для удобства можно перейти в каталог, что бы не указывать полный путь к файлу:
user@localhost:~$ cd /folder1/
user@localhost:~$ mv file1 file2
Простой пример, переместим изображение в каталог «Pictures»:
user@localhost:~$ mv /home/user/TITEL.BMP /home/user/Pictures
Переименуем файл TITEL.BMP на новой имя:
user@localhost:~$ mv /home/user/Pictures/TITEL.BMP
/home/user/Pictures/picture1.BMP
На следующем примере мы переместим все файлы из каталога «folder1»в каталог «folder2»:
user@localhost:~$ mv /home/user/folder1/* /home/user/Pictures
А если указать расширение файлов, то переместится файлы только с данным расширением,
например:
user@localhost:~$ mv /home/user/folder1/*.png /home/user/Pictures
Каталог «folder1» при этом не удаляется.
Помимо работы с файлами, команда mv может работать с каталогами.
Например переместим каталог «folder1» в каталог «Pictures»:
user@localhost:~$ mv /home/user/folder1 /home/user/Pictures
В данном случае, каталог «Pictures» существует, поэтому происходит перемещение а не

10
переименование каталога.
В следующем примере переименуем каталог «folder1» в «folder2»:
user@localhost:~$ mv /home/user/folder1 /home/user/folder2
В данном случае, каталог «folder1» был переименован в каталог «folder2», так как каталога
«folder2» не существовало.

2.5 Удаление файла


Для удаления файла используйте команду rm. Она действует по аналогии с предыдущими
примерами. Выражение в общем виде может быть записано как
«rm имя_первого_файла имя_второго_файла». Для удаления нескольких файлов можно
также использовать механизмы подстановки.
Команда «rm ~/temp/archive*.txt» удалит все файлы, расположенные в папке temp,
имеющие расширение .txt и начинающиеся со слова archive.
Есть ещё несколько способов осуществления данной операции. Например, команда find обычно
используемая для поиска файлов и директорий, позволяет также выполнять над ними действия.
Так строка «find ~/temp -regex 'archive[a-f0-9\-]*\.txt' - delete \»
выполнит тоже действие, что и пример, приведенный выше.
Пример удаления нескольких файлов
user@localhost:~$ rm first-file second-file
Пример удаления файлов через find
user@localhost:~$ find ~/temp -regex 'archive[a-f0-9\-]*\.txt

3 Поиск файлов в Linux

3.1 Поиск исполняемой программы


Не самой распространенной задачей, но всё же имеющей место быть, является поиск
исполняемого файла программы. Для этого в Linux есть специальная команда which. Она
принимает в качестве параметра имя программы, а после выполнения выводит в терминал список
с расположением совпадающих файлов.
Пример поиска системной программы
user@localhost:~$ which cat
/bin/cat
Пример поиска пользовательской программы
user@localhost:~$ which docker-stack
/home/username/.local/bin/docker-stack
Заметка: Команда which ищет только те файлы, у которых есть право на выполнение как
программы. Поиск осуществляется по директориям, заданным в переменной окружения PATH.
Содержимое переменной PATH может отличаться для различных пользователей.
Чтобы охватить как можно большее количество системных директорий, необходимо войти в
систему под учетной записью администратора.

3.2 Поиск файлов через базу данных


Linux имеет встроенные механизмы индексирования файловой системы и осуществления быстрого
поиска. Для этого раз в день запускается сканирование директорий и формирование системной
базы данных. Обычно она располагается в /var/lib/mlocate/mlocate.db. Механизм сканирования
также можно вызвать вручную с помощью команды updatedb.
Для осуществления поиска файлов в системной базе данных нужно использовать команду
locate. Просто укажите имя файла сразу за именем команды. Например, «locate my-

11
favorite-book».
Пример поиска по вхождению фразы
user@localhost:~$ locate config
/var/lib/dpkg/info/cups-bsd.config
/var/lib/dpkg/info/dash.config
/var/lib/dpkg/info/debconf.config
/var/lib/dpkg/info/dictionaries-common.config
...
Заметка: Поиск, производимый командой locate очень быстр. Однако учитывайте тот факт, что
системная база данных может быть не актуальной на момент осуществления операции. Механизм
сканирования файловой системы, время его проведения и вообще наличие такого инструмента
может разниться в различных дистрибутивах Linux.

3.3 Поиск по текстовому содержимому


Команды locate и which полезны лишь при поиске файла по его имени. Однако для проверки
текстового содержимого документов на вхождение искомых данных нужно использовать другой
инструмент. Linux имеет специальную команду grep, которая принимает шаблон для поиска и имя
файла. В случае нахождения совпадений, они будут выведены в терминал. В общем виде
выражение можно составить как «grep шаблон_поиска имя_файла».
Шаблон для поиска является регулярным выражением, а имя файла может быть задано с
использованием механизмов подстановки и групповых символов. Таким образом, поиск текста
осуществляется по нескольким файлам сразу.
Команда grep имеет много дополнительных опций. Например, опция -v заставит выводить
текстовые строки, не совпадающие с шаблоном, а опция -P позволит интерпретировать регулярное
выражение в стиле языка программирования Perl.
Некоторые дополнительные ключи команды grep:
 -v - Выводи реверсивные результаты. Вместо того чтобы вывести строки где искомое было
найдено — выводи те строки где искомой подстроки нет.
 -c - Отключает стандартный способ вывода результата и вместо этого отображает только
число обозначающее количество найденых строк.
 -i - Делает поиск регистронезависимым
 -w - Ведет поиск по цельным словам. Например при обычном поиске строки ‘wood’ grep
может найти слово ‘hollywood’. А если используется данный ключ то будут найдены только
строки где есть слово ‘wood’.
 -l - Выводит только имена файлов где была найдена строка.
 -r - Производит поиск рекурсивно по всем поддиректориям.
Пример как достать все сообщения ядра из лог-файла
user@localhost:~$ grep "kernel" /var/log/syslog
Пример комбинирования grep с выводом других команд
user@localhost:~$ ls -l ~/ | grep "username"
Пример использование grep в чистом виде
user@localhost:~$ grep '12:00' /home/user/backup/log.txt
Эта команда показывает как можно использовать grep для того чтобы получить строки из файла
содержащие подстроку указаную в командной строке. Файл не обязательно должен оканчиваться
на .txt. Показаная выше команда производит поиск подстроки 12:00 в файле
/home/user/backup/log.txt и отображает все строки где эта подстрока встречается.
Эта комбинация может быть использована например для поиска бекапов которые происходили в
12:00.
Пример использование grep -v

12
user@localhost:~$ grep -v '12.00' /home/user/backup/log.txt
А вот эта команда (с использованием ключа -v) наоборот покажет только те строки где подстрока
’12:00′ НЕ встречается.
Пример использование grep -l
user@localhost:~$ grep -l 'delay' /code/*.c
Эта команда будет искать все файлы оканчивающиеся на .c и текст в найденых файлах
соответствующий подстроке 'delay' и в конечном итоге выведет только имена файлов где эта
подстрока встречается.
Пример использование комбинации из grep -w
user@localhost:~$ grep -w '\<bay' * $ grep -w 'watch\>' *
Эта команда уже более сложная и состоит из комбинации двух команд grep. Первая ищет строки
которые начинаются со слова ‘bay’ а вторая строки которые заканчиваются на слово ‘watch’.
Пример использования grep вместе с потоками
user@localhost:~$ ls -l | grep rwxrwxrwx
Команда ls -l отображает подробный список файлов в директории. Часть grep rwxrwxrwx фильтрует
результат полученый от ls -l и выводит только те директории у которых установлены
соответствующие права доступа. В данном случае это открытый доступ на чтение, запись и поиск
для всех пользователей и групп. Так что вместо того чтобы увидеть полный список файлов вы
увидите только те файлы у которых установлены нужные вам права доступа.
Вывод от команды grep может также быть направлен потоком в другую команду, например как в
следующем примере:
user@localhost:~$ du | grep 'mp3' | more
Пример отображенный выше выводит постранично список mp3 файлов найденых в текущей
директории.
Следующая команда отобразит все строки в файле /home/user/script1 которые начинаются с
символа ‘#’. Определение тип ‘^#’ означает что символ ‘#’ должен быть первым символом с троке.
user@localhost:~$ grep '^#' /home/user/script1 | more
Эта команда ищет строки содержащие в первом символе цифры от 0 до 9 а потом выводит только
те строки которые не попали в результаты поиска. Как вы видите — был использован ключ ‘-v’
означающий реверсивный поиск.
user@localhost:~$ grep -v '^[0-9]' /home/user/backup/log.txt | more
Важно: Необходимо заключать искомые строки в одинарные кавычки как указано в двух
предыдущих примерах для того чтобы интерпретатор командной строки мог воспринимать их
корректно. Иначе интерпретатор может понять это как другую команду и результат выполнения
будет непредсказуем.
Универсальный поиск по файлам
Своего рода швейцарским ножом в поиске файлов является команда find. Отметим, что она
имеет множество опций, которые могут кардинально изменять механизм поиска. Мы изложим
лишь основные принципы, а с остальными возможностями ознакомьтесь в справке по команде.
Базовый принцип использования find состоит в указании директории поиска и опций. Например,
выражение «find ~/ -name *.cpp» осуществит поиск файлов, имеющих расширение «cpp»
по всем каталогам, находящимся в личной директории пользователя.
Значение, указанное после опции -name, задает шаблон соответствия имени файла. Вы можете
использовать опцию -type для указания типа файла, где в качестве значений нужно использовать
специальные буквы: d — директория, f — файл, l - символическая ссылка и т. д. Опции -user, -group
и -size также довольно полезны. Их значениями являются имя пользователя, имя группы и размер
файла в байтах.
С помощью опции -exec каждому файлу, предназначенному для установки соответствия, можно

13
добавить произвольную обработку. Таким образом, появляется возможность осуществления
поиска, как по имени файла, так и по содержимому. Ниже приводится пример комбинирования
команды find и grep за счет использования опции -exec.
Пример поиска по имени файла
user@localhost:~$ find ~/ -name *.cpp
Пример поиска по конкретному пользователю и группе
user@localhost:~$ find ~/ -name *.cpp -user 'my-username' -group 'my-group'

3.4 Подсчет слов в файле


Команда wc (Word Count - подсчёт слов) используется для подсчёта числа строк и слов в файлах.
Она также полезна для подсчёта байтов, символов и длины самой длинной строки.
Синтаксис:
wc [опции] [файл(ы)]
Опции:
 -l - вывод количества новых строк;
 -w - вывод количества слов;
 -m - вывод общего количества символов;
 -c - вывод количества байт;
 -L - вывод длины самой длинной строки в заданном тексте.
Примеры использования:
Пример как определить число пользователей в системе:
user@localhost:~$ wc -l /etc/passwd
Пример как посчитать количество слов в файле:
user@localhost:~$ wc -w /data/file
Пример как посчитать количество файлов в папке:
user@localhost:~$ find /var/log/ -type f | wc -l
Пример как посчитать количество запущенных процессов php-fpm:
user@localhost:~$ ps -A | grep php-fpm | wc -l

4 Права доступа файлов и папок в Linux

4.1 Система прав доступа файлов


Операционная система Linux является многопользовательской. Это позволяет нескольким людям
одновременно или по очереди использовать одно и то же окружение: файловую систему, ресурсы,
программы. Для исключения несанкционированного доступа пользователя к определенной
информации или запуска небезопасной программы была разработана специфичная система прав.
Каждый файл или директория хранит особые метаданные:
 Идентификатор владельца файла.
 Идентификатор группы файла.
 Девять битов прав доступа владельца, группы и остальных пользователей.
 Другие административные биты.
Информацию о правах доступа, а также имени владельца и группы можно получить с помощью
команды ls, используя её дополнительную опцию -l. Таким образом, результат выполнения
программы примет подробный вид.
user@localhost:~$ ls -l ~/
drwxr-xr-x 3 user user 4096 июл 28 2016 Видео
drwxr-xr-x 3 user user 4096 июн 12 14:23 Документы
drwxr-xr-x 3 user user 20480 окт 10 22:28 Загрузки

14
drwxr-xr-x 2 user user 4096 сен 30 17:45 Изображения
drwxr-xr-x 2 user user 4096 июн 17 2016 Музыка
...
Каждая строка вывода команды ls формируется установленным набором данных. Ниже дается
подробный разбор следующего содержания «-rw-r—r-- 1 user user 4096 июн 12 14:23 Документы».
Участок «-rw-r—r--» определяет информацию о типе файла, а также правах доступа владельца,
группы и остальных пользователей. Первый символ обозначает тип файла, он может принимать
следующие значения: d — директория, l — символическая ссылка, - - обычный файл (прочерк).
Оставшаяся часть разбита на комбинации по три символа. Первая комбинация отвечает за права
владельца, вторая за группу, а третья предназначена для остальных пользователей.
Комбинация, определяющая права на файл, содержит три символа «rwx», следующих друг за
другом. Они имеют определенный смысл: r — право на чтение файла, w — право на изменение, x
— право на выполнение как программы. Если какая либо буква заменена символом «-» это
означает, что данный вид операции запрещен.
Число «1» говорит о количестве вложенных файлов. Если бы данная строка относилась к
определению параметров директории, число могло иметь любое значение больше нуля. Для
файлов оно всегда равно единице.
Строка «user user» определяет имя владельца и группы соответственно. Далее содержится
информация о весе файла в байтах, дате создания и его имени.

4.2 Отличия прав доступа для папок


Как говорилось выше, Linux закрепляет за файлом девять битов, определяющих права доступа. Для
файлов они устанавливают права на чтение, запись и выполнение. Однако в отношении папок их
роль меняется кардинально.
Бит «r» устанавливает пользователю право на просмотр содержимого директории с помощью
команды ls. Бит «x» дает право на перемещение в папку, используя команду cd. Если
одновременно установлены биты «x» и «w», пользователь получает право на создание файлов
внутри директории.

4.3 Восьмеричное представление прав


Выше рассматривались базовые принципы работы с системой прав Linux. Мы узнали, что получить
текущие права файлов и директорий можно с помощью команды ls и её опции -l. Результат
выполнения содержит примерно такой участок «rwxrw-rw-». Это текстовое представление прав
доступа, разделенное на три сегмента по три буквы.
Сегменты отвечают за права владельца, группы и остальных пользователей. Буквы означают
следующее: r — разрешение на чтение файла, w — возможность изменения, x — право
выполнения файла как программы, - - прочерк говорит о запрете действия. В Linux помимо
буквенной записи зачастую используется и числовая.
Числовая запись прав доступа представляется в восьмеричной системе счисления. Она может
показаться сложной для понимания, однако на практике оказывается более удобной. Такой подход
подразумевает, что все права можно записать всего тремя числами. Каждое из них, как и в
предыдущем случае, отвечает за права владельца, группы и остальных пользователей. Число
формируется как сумма величин: 4 — право на чтение, 2 — право на запись, 1 — разрешение на
выполнение как программы.
Таким образом, если мы хотим дать владельцу неограниченные права, группе право на чтение и
редактирование, а всем остальным запретить доступ полностью, можно использовать две формы
записи: «rwxrw----» и «760».

15
4.4 Изменение прав доступа
В Linux есть универсальная команда chmod, работающая как с числовой записью прав, так и
буквенной. В случае буквенного представления общий вид использования команды выглядит как
«chmod [ugo][+-=][rwx] имя_файла». Квадратные скобки, говорят об опциональности
параметров.
Первые квадратные скобки определяют, для кого изменяется право доступа: u — владелец файла,
g — группа, o — остальные пользователи. Вторые квадратные скобки описывают возможные
действия: «+» - добавление права, «-» - удаление права, «=» - использование точно заданных
значений. Содержимое третьих скобок мы разбирали выше.
Пример как убрать все права для владельца, группы и остальных
user@localhost:~$ ls -l ~/temp-file.txt
-rw-rw-r-- 1 user user 0 июл 18 2016 temp-file.txt
user@localhost:~$ chmod ugo-rwx temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
---------- 1 user user 0 окт 17 22:36 temp-file.txt
Разрешим владельцу читать и изменять
user@localhost:~$ chmod u+rw temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rw------- 1 user user 0 окт 17 22:36 temp-file.txt
Разрешим группе и остальным читать и выполнять
user@localhost:~$ chmod go+rx temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rw-r-xr-x 1 user user 0 окт 17 22:36 temp-file.txt
Используем жесткую установку правил. Обратите внимание на исчезновение права выполнения
user@localhost:~$ chmod go=r temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rw-r--r-- 1 user user 0 окт 17 22:36 temp-file.txt
Использование восьмеричной записи при изменении прав доступа аналогично буквенной. В
общем виде команду можно записать как «chmod [0-7][0-7][0-7] имя_файла». Каждая
квадратная скобка определяет единственное число от 0 до 7.
Назначение прав с помощью числовой записи
user@localhost:~$ chmod 764 temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rwxrw-r-- 1 user user 0 окт 17 22:36 temp-file.txt
Если вам нужно поменять права для нескольких файлов, используйте механизмы постановки и
опцию -R. Подстановка обеспечит обработку всех файлов, попавших под заданный шаблон, а за
счет опции -R поиск будет продолжен и во вложенных директориях.
Заметка: Команда chmod также изменяет права доступа для директорий. При рекурсивном
назначении и использовании механизмов подстановки будьте внимательны. Задавая шаблон
соответствия, исключайте возможность совпадений с нежелательными файлами или
директориями.

4.5 Изменение группы и владельца


При создании файла или директории, им в качестве владельца назначается пользователь, под
которым осуществлен вход в систему. Помимо самого пользователя будет приписана и его группа.
Как правило, основная группа имеет то же самое имя, что и пользователь. Вы можете посмотреть
список имен и идентификаторов всех доступных групп в файле /etc/group.
user@localhost:~$ cat /etc/group
user:x:1000:

16
sambashare:x:128:user
nm-openvpn:x:131:
memcache:x:132:
mysql:x:129:user
...
В Linux для изменения группы используется команда chgrp. Первым параметром она принимает
имя или идентификатор группы, а вторым имя файла или директории. Изменения могут
применяться сразу к нескольким файлам, аналогично команде chmod, за счет механизмов
подстановки и опции -R.
Заметка: chgrp изменит права файла или директории только в том случае, если пользователь,
вызвавший команду на выполнение, сам состоит в указанной группе.
Изменение владельца файла происходит с помощью команды chown. В общем виде вызов
команды можно записать как «chown владелец:группа имя_файла». Как вы могли заметить,
команда chown может устанавливать и группу файла, если указать её имя после имени нового
владельца. При этом имя пользователя должно быть отделено от группы двоеточием «:».
Изменение группы специальной функцией
user@localhost:~$ chgrp mysql ~/temp-file.txt
ls -l ~/temp-file.txt
-rwxrw-r-- 1 user mysql 0 окт 17 22:36 temp-file.txt
Изменение владельца и группы одновременно
user@localhost:~$ sudo chown mysql:docker ~/temp-file.txt
ls -l ~/temp-file.txt
-rwxrw-r-- 1 mysql docker 0 окт 17 22:36 temp-file.txt
Заметка: Если у вас нет прав на редактирование файла, единственно возможным способом
осуществить изменение его группы или пользователя является выполнение команды chown от
лица администратора.

5 Специальные биты доступа в Linux

5.1 Роль специальных битов


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

5.2 Бит Setuid


Признак setuid также сокращенно называют suid. В Linux он может быть установлен только для
файла. Бит suid позволяет всем пользователям имеющим доступ на выполнение файла запускать
его с правами владельца. Если программа принадлежит администратору, любой пользователь,
запустив ее, будет взаимодействовать с системой как администратор.
Специальный бит suid устанавливается с помощью команды chmod. В буквенной записи
назначения прав используйте символ «s». Например, в общем виде команду можно записать как
«chmod u+s имя_файла». Обратите внимание, устанавливать этот бит для группы и остальных
пользователей не имеет смысла. Если suid задан для владельца, а для группы и остальных

17
пользователей дано разрешение на выполнение файла, то запуск будет происходить от имени
владельца.
Восьмеричная запись немного сложнее. Мы говорили, что права представлены с помощью трех
символов, каждый из которых является суммой значений: 4 — право на чтение, 2 — право на
запись, 1 — разрешение на выполнение как программы. Чтобы разрешить владельцу и группе все
действия, а остальных пользователей игнорировать нужно, установить права «770». Бит setuid
также добавляется к этой последовательности за счет сложения. Однако он имеет числовое
значение «4000», что меняет последовательность на «4770».
Пример установки бита setuid для нового временного файла
user@localhost:~$ touch ~/temp-file.txt
user@localhost:~$ chmod u+x ~/temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rwxrw-r-- 1 user user 0 окт 20 22:21 /home/user/temp-file.txt
user@localhost:~$ chmod u+s ~/temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rwsrw-r-- 1 user user 0 окт 20 22:21 /home/user/temp-file.txt
Команда «ls -l» позволяет распознать наличие бита setuid за счет специальной буквы «s», которая
заменяет «x» в правах владельца. При этом маленькая буква «s» говорит о том, что до назначения
setuid у владельца уже было право на выполнение, а большая «S» свидетельствует об обратном.
Заметка: Устанавливайте специальный бит setuid только по необходимости. Linux считается очень
защищенной операционной системой от разного рода атак. Однако бездумное распределение
прав может привести к нежелательным последствиям.

5.3 Бит Setgit


В отличие от предыдущего специального бита setgit может быть установлен как для файла, так и
для директории. Если он применен для исполняемого файла, любой пользователь, запустивший
его на выполнение, будет иметь права группы, привязанной к этому файлу. Установка setgit для
директории имеет другое значение. Ко всем файлам, вновь созданным в такой директории,
автоматически привязывается группа директории, а не создателя.
Аналогично setuid вы можете использовать как буквенную запись назначения прав, так и
восьмеричную. В буквенной записи используйте символ «s» с привязкой к группе, а в
восьмеричной системе сложите с основной последовательностью чисел значение «2000».
Пример установки бита setgit для временного файла
user@localhost:~$ ls -l ~/temp-file.txt
-rwxrw-r-- 1 user user 0 окт 20 22:21 /home/user/temp-file.txt
user@localhost:~$ chmod g+s ~/temp-file.txt
user@localhost:~$ ls -l ~/temp-file.txt
-rwsrwSr-- 1 user user 0 окт 20 22:21 /home/user/temp-file.txt
Наличие специального бита setgit можно увидеть, запустив команду «ls -l». Если он присутствует,
право на выполнение для группы будет заменено символом «s» или «S».

5.4 Бит Sticky


Последний бит из расширенных прав доступа Linux используется только для директорий. Его
наличие позволяет удалять файлы, присутствующие внутри директории, только их владельцам.
Назначение бита происходит в буквенной записи команды chmod с помощью символа «t», а в
восьмеричной за счет сложения основного ряда чисел со значением «1000».
Пример установки бита sticky для директории
user@localhost:~$ mkdir ~/new-directory
user@localhost:~$ ls -l ~/

18
drwxrwxr-x 2 user user 4096 окт 20 22:29 new-directory

user@localhost:~$ chmod +t ~/new-directory
user@localhost:~$ ls -l ~/
drwxrwxr-t 2 user user 4096 окт 20 22:29 new-directory

Как и в прошлых примерах, команда ls покажет наличие бита sticky. Маленькая буква «t» заменит
флаг «x» в участке, отвечающим за права остальных пользователей, а если «x» не был установлен,
на его месте появится большая «T».

6 Создание и распаковка архивов в Linux


Самой популярной для Linux утилитой для архивации есть tar. В случае с Linux для работы с
архивами достаточно базовых компонентов системы, а именно Tar, Gzip и Bzip2, которые при
создании сжатого архива работают как единое целое, т.к. сам по себе архиватор Tar не
предусматривает возможность сжатия данных то есть архивирование в linux это не одно и то же
что и сжатие файлов linux. Архивирование — это объединение нескольких небольших файлов в
один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Для
сжатия данных используется Gzip или Bzip2. Архивы, созданные с применением Gzip, обычно
имеют расширение .tar.gz, а при использовании Bzip2 — .tar.bz2. Сначала выполняется архивация,
затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для
только что созданного архива поддерживается в tar и других подобных программах с помощью
специальных опций.
Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие
существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими
пользоваться.

6.1 Создание tar-архива без сжатия


Tar — это стандартная утилита, с помощью которой выполняется архивирование файлов Linux.
Постепенно из небольшой программы архивации она превратилась в мощный инструмент,
поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа
поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные
параметры:
$ tar опцииf файл_для_записи /папка_файлами_для_архива
А теперь разберем основные опции:
 A — добавить файл к архиву
 c — создать архив в linux
 d — сравнить файлы архива и распакованные файлы в файловой системе
 j — сжать архив с помощью Bzip
 z — сжать архив с помощью Gzip
 r — добавить файлы в конец архива
 t — показать содержимое архива
 u — обновить архив относительно файловой системы
 x — извлечь файлы из архива
 v — показать подробную информацию о процессе работы
 f — файл для записи архива

19
 -C — распаковать в указанную папку
 —strip-components — отбросить n вложенных папок
Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте
такую команду:
user@localhost:~$ tar -cf filename.tar file1 file2 fileN
Параметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы.
Вместо файлов могут быть указаны и директории.

6.2 Создание архива с использованием сжатия


Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось
шифрование gizp, если нужно bzip то применяется опция -j. Поскольку для сжатия доступны как
минимум два метода, для использования каждого из них используется отдельный набор
параметров.
Пример сжатия Gzip:
user@localhost:~$ tar -cvzf filename.tar.gz dir_name
В данном случае мы попытались запаковать папку dir_name в архив filename.tar.gz. Из указанных
параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса
создания архива с указанием упакованных файлов или папок.
Пример сжатия Bzip2:
user@localhost:~$ tar -cvjf filename.tar.bz2 dir_name
Данная команда аналогична предыдущей и имеет отличие в параметре –j, т.к. именно он отвечает
за использование метода сжатия Bzip2.

6.3 Распаковка архива


Для того, чтобы распаковать архив, используется команда:
user@localhost:~$ tar -xvf filename.tar.bz2
В данном случае архив filename.tar.bz2 будет распакован в ту папку, в которой вы находились в
момент запуска команды. Для того, чтобы распаковать архив в какую-либо другую директорию,
можно использовать команду:
user@localhost:~$ tar -xvf filename.tar.bz2 -C /path/to/folder
В этом случае архив распакуется в указанной директории.
Очень просто запомнить для упаковки используется опция c — Create, а для распаковки — x —
eXtract.

6.4 Просмотр содержимого архива без распаковки


Для этих целей используется следующая команда:
user@localhost:~$ tar -tf filename.tar.gz
В результате выполнения команды выведется список файлов и папок, хранящихся в архиве. Если в
перечень параметров добавить -v, то получится расширенный вывод информации о содержимом с
указанием размера файлов, прав доступа, именами владельцев и их групп, и т.п.
Просмотреть полный список возможностей архиватора tar можно при помощи команд:
tar --help #вызов справки по командам и параметрам
man tar #вызов расширенной документации

20
Список вопросов для закрепления материала
1. Работа с файлами и каталогами.
2. Создание, копирование и удаление файлов в Linux.
3. Поиск файлов в Linux.
4. Права доступа файлов и папок в Linux.
5. Специальные биты доступа в Linux.
6. Создание и распаковка архивов в Linux.
7. Просмотр содержимого архива без распаковки.

21