# Домашнее задание Linux: Работа с файлами (1.2) 1.Ответьте на несколько вопросов: a. Что такое inode? Сама по себе inode – это запись в специальной таблице, которая содержит в себе ключ значения. По сути, то, что подразумевают под inode, это номер той записи, на которую она ссылается. Inode содержит следующие метаданные: - № inode; - Тип; - Размер; - Даты создания/изменения; - Данные о владельце; - Группа; - Права доступа; - SELinux Context. b. Как удобнее посмотреть дерево файлов? -при помощи команды three (-d, -D). c.Чем отличается глоб [ab] от {a,b}? Выражение в квадратных скобках задает область. Мы можем с их помощью выбрать какой-то интервал. Фигурные скобки объединяют любые из глобов в одно выражение поиска и между этими выражениями устанавливается логическое «или». 2.Ознакомьтесь с командами с помощью команды man. Обратите внимание на следующие параметры команд: a. cat-конкатенация и выдача содержимого файлов; more-осуществляет поэкранный просмотр текста файла; less- это утилита командной строки, которая отображает содержимое файла или вывод команды по одной странице за раз. Он похож на more, но имеет более продвинутые функции и позволяет перемещаться по файлу как вперед, так и назад. b. ls-выдаёт информацию о ФАЙЛАХ (по умолчанию о текущем каталоге); (-l)-выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры; (-pt)- добавлять индикатор / к каталогам; сортировать по времени изменения, сначала самые новые); sort-сортирует содержимое файла в алфавитном или нумерологическом порядке; (-u)-(--unique)-данная опция cкрывает одинаковые объекты. Если в процессе сортировки выявилось несколько одинаковых объектов, то будет выведен только первый из них, остальные проигнорированы; tree-отображает дерево директорий. c. mkdir-создание каталога; (-p)-не выдавать ошибку, если существует, создавать родительские каталоги, если необходимо; d. cp-копирует ИСТОЧНИК в НАЗНАЧЕНИЕ, или несколько ИСТОЧНИКОВ в КАТАЛОГ; (-a)-(--attributes-only)-не копировать данные файла, только атрибуты; (-f)- (--force)-если невозможно открыть существующий файл, то удалить его и попробовать ещё раз (этот параметр игнорируется, если также указан ключ -n); (-r)-(--recursive)-рекурсивно копировать каталоги; (-v)-(--verbose)-выводит имя каждого файла перед его копированием. mv-переименовывает ИСТОЧНИК в НАЗНАЧЕНИЕ, или перемещает ИСТОЧНИК(и) в КАТАЛОГ; (-f)-(--force)-переписывать существующие файлы не спрашивая. e. rm-удаляет файлы из файловой системы; (-r)-(--recursive)-рекурсивно удалять каталоги и их содержимое; (-i)-запрашивать подтверждение перед каждым удалением; (-f)-(--force)-игнорировать несуществующие файлы и аргументы, ни о чем не спрашивать. f. date-выводит текущую дату и время в различных форматах и позволяет устанавливать системное время; (-d)-(--date=СТРОКА)-показать не текущее время, а время, описанное заданной СТРОКОЙ; (-r)-(--reference=ФАЙЛ)-вывести не текущее время/дату, а время/дату последнего изменения файла; (+%)- вывод date команды может быть отформатирован с помощью последовательности символов управления форматом, перед которой стоит + знак. Элементы управления форматом начинаются с % символа и заменяются их значениями. g. touch-команда, предназначенная для установки времени последнего изменения файла или доступа в текущее время. Также используется для создания пустых файлов; (-d)-(--date=СТРОКА)-проанализировать СТРОКУ и использовать вместо текущего времени. h. find-команда для поиска файлов и каталогов на основе специальных условий. Ее можно использовать в различных обстоятельствах, например, для поиска файлов по разрешениям, владельцам, группам, типу, размеру и другим подобным критериям; (-name)-искать по маске имени файла. Опция -name регистрочувствительная, то есть различает прописные и строчные буквы; (-iname)-опция для поиска файлов без учета регистров; (-mtime)- время последнего изменения файла (в днях); (-type)-искать файлы по типу; (-delete)-удалять найденные файлы; (-exec)-(command {} \;)-выполняет над найденным файлом указанную команду; обратите внимание на синтаксис; (-o)-если необходимо объединить несколько аргументов логическим или-используйте опцию -o, от англ. or; (-print0)-выводит путь к текущему файлу на стандартный вывод, за которым следует символ ASCII NULL (код символа 0); (xargs)-выполняет КОМАНДУ с аргументами НАЧАЛЬНЫЕ-АРГУМЕНТЫ и дополнительными аргументами, прочитанными из стандартного ввода. Обязательность или необязательность аргументов для длинного параметра аналогична и для соответствующего короткого параметра. 3.Создайте следующую структуру каталогов с файлами: ![](https://i.imgur.com/rSTQ4XF.jpg) ``` ├── [Sep 28 1:50] 1 │   ├── [Sep 28 1:45] 1 │   │   └── [Sep 28 1:45] file.txt │   ├── [Sep 28 1:48] 2 │   │   └── [Sep 28 1:48] file.txt │   ├── [Sep 28 1:49] 3 │   │   └── [Sep 28 1:49] file.txt │   ├── [Sep 28 1:49] 4 │   │   └── [Sep 28 1:49] file.txt │   └── [Sep 28 1:50] 5 │   └── [Sep 28 1:50] file.txt ├── [Sep 28 1:51] 2 │   ├── [Sep 28 1:51] 1 │   │   └── [Sep 28 1:51] file.txt │   ├── [Sep 28 1:51] 2 │   │   └── [Sep 28 1:51] file.txt │   ├── [Sep 28 1:51] 3 │   │   └── [Sep 28 1:51] file.txt │   ├── [Sep 28 1:51] 4 │   │   └── [Sep 28 1:51] file.txt │   └── [Sep 28 1:52] 5 │   └── [Sep 28 1:52] file.txt ├── [Sep 28 1:53] 3 │   ├── [Sep 28 1:52] 1 │   │   └── [Sep 28 1:52] file.txt │   ├── [Sep 28 1:53] 2 │   │   └── [Sep 28 1:53] file.txt │   ├── [Sep 28 1:53] 3 │   │   └── [Sep 28 1:53] file.txt │   ├── [Sep 28 1:53] 4 │   │   └── [Sep 28 1:53] file.txt │   └── [Sep 28 1:53] 5 │   └── [Sep 28 1:53] file.txt ├── [Sep 28 1:56] 4 │   ├── [Sep 28 1:56] 1 │   │   └── [Sep 28 1:56] file.txt │   ├── [Sep 28 1:56] 2 │   │   └── [Sep 28 1:56] file.txt │   ├── [Sep 28 1:56] 3 │   │   └── [Sep 28 1:56] file.txt │   ├── [Sep 28 1:56] 4 │   │   └── [Sep 28 1:56] file.txt │   └── [Sep 28 1:56] 5 │   └── [Sep 28 1:56] file.txt ├── [Sep 28 3:19] config.json ├── [Sep 28 20:48] marat │   ├── [Sep 28 20:48] 1 │   │   ├── [Sep 28 20:51] 1 │   │   │   └── [Sep 28 2020] file.txt │   │   ├── [Sep 28 20:51] 2 │   │   │   └── [Sep 28 2020] file.txt │   │   ├── [Sep 28 20:51] 3 │   │   │   └── [Sep 28 2020] file.txt │   │   ├── [Sep 28 20:51] 4 │   │   │   └── [Sep 28 2020] file.txt │   │   └── [Sep 28 20:51] 5 │   │   └── [Sep 28 2020] file.txt │   ├── [Sep 28 20:48] 2 │   │   ├── [Sep 28 20:51] 1 │   │   │   └── [Sep 28 20:51] file.txt │   │   ├── [Sep 28 20:51] 2 │   │   │   └── [Sep 28 20:51] file.txt │   │   ├── [Sep 28 20:51] 3 │   │   │   └── [Sep 28 20:51] file.txt │   │   ├── [Sep 28 20:51] 4 │   │   │   └── [Sep 28 20:51] file.txt │   │   └── [Sep 28 20:51] 5 │   │   └── [Sep 28 20:51] file.txt │   ├── [Sep 28 20:48] 3 │   │   ├── [Sep 28 20:52] 1 │   │   │   └── [Sep 28 20:52] file.txt │   │   ├── [Sep 28 20:52] 2 │   │   │   └── [Sep 28 20:52] file.txt │   │   ├── [Sep 28 20:52] 3 │   │   │   └── [Sep 28 20:52] file.txt │   │   ├── [Sep 28 20:52] 4 │   │   │   └── [Sep 28 20:52] file.txt │   │   └── [Sep 28 20:52] 5 │   │   └── [Sep 28 20:52] file.txt │   └── [Sep 28 20:48] 4 │   ├── [Sep 28 20:52] 1 │   │   └── [Sep 28 20:52] file.txt │   ├── [Sep 28 20:52] 2 │   │   └── [Sep 28 20:52] file.txt │   ├── [Sep 28 20:52] 3 │   │   └── [Sep 28 20:52] file.txt │   ├── [Sep 28 20:52] 4 │   │   └── [Sep 28 20:52] file.txt │   └── [Sep 28 20:52] 5 │   └── [Sep 28 20:52] file.txt ├── [Sep 26 20:39] of the file associated with standard output. └── [Sep 26 20:39] s and modification times of each FILE to the current ``` ``` drwxrwxr-x. 7 devops devops 51 сен 28 01:50 1 drwxrwxr-x. 7 devops devops 51 сен 28 01:51 2 drwxrwxr-x. 7 devops devops 51 сен 28 01:53 3 drwxrwxr-x. 7 devops devops 51 сен 28 01:56 4 -rw-rw-r--. 1 devops devops 0 сен 28 03:19 config.json ``` [](https://)[](https://)