# Домашнее задание 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.Создайте следующую структуру каталогов с файлами:

```
├── [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://)