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

Читайте также:  Команды linux объем диска

Данная команда можем переносить так же в другую папку, например, глубже

Вот так будет выглядеть команда. А также можно вернуть его обратно, командой:

В конце знак точки выполняет функцию обозначения текущей папки. Аналогичные действия мы можем производить с папками. С помощью команд 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 . Команда выполнилась и вывела число блоков, сколько обработалось. И переместившись на уровень выше, в родительскую директорию мы можем увидеть, что файл появился.

Читайте также:  Windows security notification icon как убрать

А можем сделать следующую вещь: 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 существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:

Читайте также:  Значки рабочего стола перемещаются сами после перезагрузки windows 10

/tmp/file1 — относительный путь;

Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.

Команды для работы с файлами и директориями

Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:

  1. cd — смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root ;
  2. pwd — команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
  3. ls — вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax , то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
  4. cat — показывает содержимое файла, к примеру – cat /root/file.txt ;
  5. tail — например, tail /root/file.txt , выводит только конец файла, удобно при работе с логами;
  6. cp — копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
  7. mkdir — создание директории, например, mkdir /root/1 ;
  8. rmdir — удаление директории, синтаксис такой же, как и у команды выше;
  9. rm -rf — очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
  10. mv — переименование файла или директории, сначала указывается целевая директория и затем её новое название;
  11. 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

Источник

Оцените статью