Работа с каталогами и файлами в Linux
- Работа с каталогами и файлами
- Копирование, создание и перемещение файлов
- Виды ссылок
- Монтирование файловых систем
Работа с каталогами и файлами
В Linux уникальная файловая система. Система начинается с корня «/». Путь к файлу это перечисление всех каталогов на пути к нему. Пути в файловой системе бывают абсолютные «их начало обозначается как /», и относительные «их путь идет от текущего каталога». Рассмотрим ряд следующих команд:
- pwd — покажет текущий каталог;
- cd /var/tmp — это переход по абсолютному пути;
- cd tmp/ — переход по относительному пути в каталоге /var/;
- cd — переход в домашний каталог пользователя;
- cd .. — переход на уровень выше по дереву каталога (можно сказать, что ваш прошлый каталог).
Команда ls используется в командной оболочке Linux для вывода содержимого каталогов и информации о файлах. Разберем способ применения:
- ls — можно написать абсолютный или относительный путь следования. Информация будет выведена по нужному вам пути. Можно просто написать команду и будет вывод информации о файлах из текущего каталога;
- ls -l — вывод расширенной информации;
- ls — a — включение в вывод скрытых фалов;
- ls -lh — отображение дополнительных данных в читаемом виде;
- file — содержимое файла.
В утилитах есть специальные символы для более гибкой работы, к примеру «*» ls /etc/*.txt выводит любое количество символов. Если у вас в каталоге был файл admin.txt 1.txt lol.txt то вы увидите выод всех этих файлов «?» выводит один символ, сколько знаков вопроса, столько и символов, еще [символы] выводит один раз файл с символом в скобке
Копирование, создание и перемещение файлов
Философия Linux гласит — всё в системе есть файл. Мы ежедневно работаем с файлами, и программы, которые мы выполняем, — тоже файлы. Значит работа с файлами — это работа со сей системой Linux. Разберем следующие команды:
- touch — создание файла;
- touch -t — установка времени на файл. Вот пример touch -t 201908131501 /var/my.txt;
- touch -r — взять временную метку у одного файла т присвоить другому;
- mkdir — Создание каталогов. Ключ -p позволяет автоматически создать всю цепочку каталогов.
Копирование фалов и каталогов можно выполнить командой cp. Разберем более подробно данную команду:
- cp — копировать один каталог или файл в другой, скопированный файл будет воссоздан в другом каталоге;
- cp -p — полное копирование метаданных;
- cp -f — перезапись файла без запроса;
- cp -i — интерактивная перезапись;
- cp -r — рекурсивное копирование каталогов с содержимым;
- cp -u — обновление файла-приемника, если источник новее.
Перемещение файлов выполняется с помощью команды mv. Переименование файлов есть их перемещение. Удаление директорий осуществляется с помощью команды rmdir. Удаление файлов осуществляется с помощью команды rm. Поддерживаются специальные символы. Разберем:
- mv — перемещение файла из одного пути в другой;
- rmdir — удалить каталог, если он пуст;
- rmdir -p — удалить каталог и все перечисленные в пути;
- rm — удалить файл;
- rn -rf — рекурсивно удалить каталог вместе со всем содержимым.
Виды ссылок
Ссылки можно разделить на два вида, символьные и жесткие . Символьные ссылки представляют собой файл, который указывает на другой файл в дереве каталогов. Этот вид ссылки не зависит от существования файла. Жесткая ссылка подразумевает под собой дополнительный адрес в физическом блоке данных файловой системы. Имена файлов в ФС, по сути жесткие ссылки и возможно добавить еще одну. Для удаления файла с ссылками необходимо в первую очередь удалить сами ссылки. Всё это нужно (к примеру) для более быстрого перехода на необходимый файл. Разберем команды;
- ln -s — ссылка символьная;
- ln — ссылка жесткая.
Монтирование файловых систем
Монтирование ФС — это процесс подключения новой ФС на локальном или удаленном ПК. Для работы необходима поддержка ФС стандарта VFS. Монтировать можно вручную, но и автоматически это возможно.
Смонтировать ФС типа «Тип» на Устройстве с указанными Опциями адресу «Точка монтирования».
mount -t ext4 -o defaults /dev/sda3 /mnt/Ext
mount -t iso9660 -o ro /dev/cdrom /mnt/cd
Размонтирование выполняется с помощью команды umount. Нельзя размонтировать то, что используется.
umount — параметром может выступать точка монтирования или устройства.
Linux это удобная и быстрая система, её лишь нужно освоить и другие ОС для вас будут простые и скучные.
Команды Linux для работы с файлами
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
Вы также можете вернуться в предыдущую рабочую папку:
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
Чтобы убрать флаг исполняемый используйте опцию -x:
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!