- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Основные операции с файлами и папками в Linux
- Команда touch
- Команда cp
- Команда mv
- Команда rm
- Команда file
- Команда find
- Команда cpio
- Команда dd
- Команда gzip
- Команда bzip2
- Команда tar
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Linux: команды для работы с файлами и директориями
- Основы
- Команды для работы с файлами и директориями
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Основные операции с файлами и папками в Linux
В данной статье мы рассмотрим такие вопросы как, копирование, перенос и удаление файлов. Копирование нескольких файлов и папок в том числе рекурсивно. Удаление файлов и папок в том числе рекурсивно. Использование групповых символов. Отбор файлов по типу, размеру, дате и.т.д. Утилиты tar , cpio и dd .
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Исходя из обозначенных выше вопросов будем разбираться со следующим списком команд: cp , find , mkdir , mv , ls , rm , rmdir , touch , tar , cpio , dd , file , gzip , gunzip , bzip2 , xz , file globbing .
А также захватим основные виды архиваторов и посмотрим, как с ними работать.
Команда touch
Данная команда меняет отметки времени файла. При помощи этой команды мы можем создавать новые файлы и менять время доступа к файлу.
Например, мы можем посмотреть, что в текущей директории нет текстовых фалов. Убедится мы можем командой ls , а посмотреть в какой директории pwd. Соответственно вводим touch 123.txt и файл появляется.
Есть так же другая команда для создания директорий mkdir . Описание можно по ней посмотреть, через ввод команды man mkdir . Данная команда создает директорию, например, mkdir folder1 создаст нам директорию folder1. Для просмотра используем команду ls . По данной команде мы тоже можем посмотреть мануал man ls . В описании написано, что показывает содержимое папки. Мы так же ее можем использовать с ключем –l , листинг, т.е в виде списка.
В таком формате мы можем увидеть, кто владелец папки или файла, группу права на папку или файл. Достаточно информативно получается использование данной команды.
Создадим еще один файл 456.txt и файл 1.txt в папке folder1
и групповое создание файлов touch folder1/<2,3>.txt , а так же мы можем посмотреть, что у нас получилось в папке folder1.
Команда cp
Команда предназначена для копирования файлов и директорий.
Самый простой пример сделать копию: cp 123.txt copy123.txt . Можно скопировать директорию cp folder1 folder2 . И команда откажется выполнятся, потому, что по умолчанию рекурсивно не работает. В папке folder1 находятся файлы. И если мы хотим это осуществить то используем ключ –r или –R .
Данная команда очень важна, т.к приходится использовать ее достаточно часто, например при настройке, какого–нибудь важного демона. Прежде чем вносить правки в файл конфигурации данного демона, оригинальный конфигурационный файл лучше всего скопировать.
Команда mv
Данная команда позволяет перенести файлы или папки, или переименовать (перенести данные из одного имени в другое). Для примера, скажем файл 456.txt перенести в файл something.txt , т.е mv 456.txt something.txt . Как мы видим файл 456 исчез, а появился something.txt
Данная команда можем переносить так же в другую папку, например, глубже
Вот так будет выглядеть команда. А также можно вернуть его обратно, командой:
В конце знак точки выполняет функцию обозначения текущей папки. Аналогичные действия мы можем производить с папками. С помощью команд mv и cp .
Команда rm
Данная команда предназначена для удаления папок и файлов.
- rm 123.txt — удаление файла
- rm folder1 – удаление каталога, но команда выдает ошибку. Это происходит потому, что в папке находится файл. Если мы хотим удалить рекурсивно, то необходимо добавить ключ –r , а если без предупреждений и принудительно , то еще ключик –f . Итоговая команда будет выглядеть следующим образом.
Есть еще одна команда которая удаляет непосредственно папки, называется она rmdir . Мануал посмотреть вы можете по ней командой man rmdir . Данная команда удаляет непосредственно пустые директории. Работает достаточно близко по функционалу к rm .
Команда file
Команда определяет тип файла. Перейдем в папку Folder.
Попробуем определить тип файла file yandex.url , как мы можем убедится команда выдает, что данный файл является текстовым.
Если мы наберем, например, File * , то команда применится ко всем файлам в текущей директории и определит все типы файлов.
Важной частью работы с файлами и папками являются Групповые Символы.
- * — все что угодно (заменяет любое количество символов)
- ? – любой символ (одиночный символ, ?? – два символа)
- ! – не (отрицание)
- [ac] – a или с
- [a-c] – a,b,c
Создал несколько новых файлов:
ls * — дает занимательную картинку, где видны файлы и папки.
Команда ls *.* нам покажет только те файлы которые имеют расширения. Первая звездочка, означает любое имя, вторая звездочка указывает на любое расширение. Мы можем указать на конкретное количество символов обозначив их знаками “?” . Например, ls *. – это означает, что подходят любые файлы, у которых расширение из 3-х любых символов. Знаки вопросов и звездочек, можно использовать с сочетаниями букв и других символов. Можно сказать, покажи нам все файлы, которые начинаются с букв a или b, команда ls [ab]* .
Также можно использовать конструкцию ls [a-m]* . Следовательно, работают все конструкции с групповыми символами.
Команда find
Данная команда будет осуществлять поиск файлов по иерархической структуре папок.
Попробуем найти в директории все файлы:
Получим вот такой ответ на данную команду. У данной команды очень много ключей. Можем для примера взять такую конструкцию find . –name “In*” . Данная конструкция обозначает поиск в текущей папке, по имени, которое начинается с In и имеет в имени любое количество символов. Данную команду можно использовать для поиска файлов например по размеру: find . –size +5M . Следовательно, данным запросом мы ищем все файлы в текущем каталоге с размером более 5 MB.
Команда cpio
Работа с архивами очень важная часть операций с файлами. Для того, чтобы разобраться в данном вопросе рассмотрим следующую команду.
Данная команда позволяет копировать файлы в архивы и из архивов. Данная команда позволяет работать с архивами, грубо говоря это двоичный архиватор. Смотрим, что есть в директории ls .
Далее даем вот такую команду: ls | cpio –o > ../test.cpio
В результате получили файл
Пояснения, что мы сделали. Мы взяли вывод команды ls по конвейеру передали на вход команды cpio с ключем –o , который создает архив и то, что должно получится мы указали папку .. т.е родительская директория и файл test.cpio . Команда выполнилась и вывела число блоков, сколько обработалось. И переместившись на уровень выше, в родительскую директорию мы можем увидеть, что файл появился.
А можем сделать следующую вещь: find . –name ”*.txt” | cpio –o > test2.cpio . Т.е мы можем выполнит поиск всех текстовых файлов в текущей директории и заархивировать, причем положить в текущую директорию.
Создадим папку mkdir extract . И перейдем в нее cd /root/extract . Теперь мы попробуем разархивировать cpio –id
Как мы видим все текстовые файлы появились. По сути, что мы сделали. Мы сказали команде cpio подняться на уровень выше взять test2.cpio и разархивировать в текущий каталог. Как видите там же попался каталог folder2, а попался т.к в нем тоже есть текстовые файлы. Напоминаю, что команда find работает так же со вложенными файлами, поэтому данный каталог и попал в архив.
Команда dd
Еще немного про архивы.
Конвертирует и копирует файлы. Данная команда умеет копировать, не части файловой системы, как файлы или папки, а умеет копировать блочные устройства или его части, например, диск. Для того, чтобы показать, как это работает я примонтировал еще один раздел на 5 ГБ.
Далее пишем следующее, находясь в директории cd /root/extract .
- dd — сама команда
- if (Input файл) — диск
- of (Output файл) — путь куда положить.
Мы видим, что команда столько-то получила, столько-то отправила данных в файл.
Как можно увидеть, команда отработала. Следовательно, команда dd может сделать целиком резервную копию блочного устройства.
Команда gzip
Переходим непосредственно к архиваторам.
Утилита, которая позволяет разжимать и упаковывать файлы.
Получаем в итоге, что вместо drive.img гигантского, получился более компактный drive.img.gz т.е команда gzip не просто создает архив , но и убивает оригинальный файл. Соответственно если мы хотим его отзиповать, то используем команду gunzip drive.img.gz
Все архиваторы различаются по типу сжатия.
Команда bzip2
Данный архиватор уже работает с блоками. Если его запустить аналогичным образом предыдущему архиватору, то получим файл немного меньшего размера. Это значить, что данный архиватор работает более эффективно с данным типами файлов. Разархивация осуществляется так же аналогично.
Команда tar
Теперь посмотрим легендарный архиватор tar
Наиболее часто использующийся архиватор. С множеством функций и ключей. Пример использования.
Синтаксис простой, команда с – создать , v — показывать процесс, f — файл, archive.tar — путь к месту где создастся архив, folder2 папка которую архивируем.
Теперь мы можем подключить сжатие архиватора gzip, в опции надо добавить ключ “ z ” и выходной файл надо назвать archive.tar.gz .
Для разархивации мы указываем ключи xvf и путь до архива.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Linux: команды для работы с файлами и директориями
4 минуты чтения
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/tmp/file1 — относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
- cd — смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root ;
- pwd — команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
- ls — вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax , то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
- cat — показывает содержимое файла, к примеру – cat /root/file.txt ;
- tail — например, tail /root/file.txt , выводит только конец файла, удобно при работе с логами;
- cp — копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
- mkdir — создание директории, например, mkdir /root/1 ;
- rmdir — удаление директории, синтаксис такой же, как и у команды выше;
- rm -rf — очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
- mv — переименование файла или директории, сначала указывается целевая директория и затем её новое название;
- locate — поиск файла с заданным названием;
Для наглядности, посмотрите на вывод команды tail
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком 🙂
- tar cf example.tar /home/example.txt — создание .tar архива, который будет содержать в себе текстовый файл example.txt;
- tar cjf example1.tar.codez2 /home/example1.txt — команда с тем же функционалом, только будет использоваться сжатие Bzip2;
- tar czf example2.tar.gz /home/example2.txt — опять архивация, только на этот раз со сжатием Gzip;
- tar xf example.tar — распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution 🙂 Команды требуют наличие прав супер — пользователя.
- rpm -qa — вывод списка всех установленных RPM пакетов в системе;
- rpm –i rpmpackage.rpm — установка пакета с именем rpmpackage;
- rpm –e rpmpackage — удаление пакета с таким именем;
- dpkg -i *.rpm — установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS — сервер)
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник