ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

8 минут чтени€

¬ данной статье мы рассмотрим такие вопросы как, копирование, перенос и удаление файлов.  опирование нескольких файлов и папок в том числе рекурсивно. ”даление файлов и папок в том числе рекурсивно. »спользование групповых символов. ќтбор файлов по типу, размеру, дате и.т.д. ”тилиты tar, cpio и dd.

»сход€ из обозначенных выше вопросов будем разбиратьс€ со следующим списком команд: cp, find, mkdir, mv, ls, rm, rmdir, touch, tar, cpio, dd, file, gzip, gunzip, bzip2, xz, file globbing.

ј также захватим основные виды архиваторов и посмотрим, как с ними работать.


 оманда touch

man touch

ƒанна€ команда мен€ет отметки времени файла. ѕри помощи этой команды мы можем создавать новые файлы и мен€ть врем€ доступа к файлу.

Ќапример, мы можем посмотреть, что в текущей директории нет текстовых фалов. ”бедитс€ мы можем командой ls, а посмотреть в какой директории pwd. —оответственно вводим touch 123.txt и файл по€вл€етс€.

touch 123.txt

≈сть так же друга€ команда дл€ создани€ директорий mkdir. ќписание можно по ней посмотреть, через ввод команды man mkdir. ƒанна€ команда создает директорию, например, mkdir folder1 создаст нам директорию folder1. ƒл€ просмотра используем команду ls. ѕо данной команде мы тоже можем посмотреть мануал man ls. ¬ описании написано, что показывает содержимое папки. ћы так же ее можем использовать с ключем Цl, листинг, т.е в виде списка.

mkdir folder1

¬ таком формате мы можем увидеть, кто владелец папки или файла, группу права на папку или файл. ƒостаточно информативно получаетс€ использование данной команды.

—оздадим еще один файл 456.txt и файл 1.txt в папке folder1

touch 456.txt
touch folder1/1.txt

и групповое создание файлов touch folder1/{2,3}.txt, а так же мы можем посмотреть, что у нас получилось в папке folder1.

ls folder1

 оманда cp

man cp

 оманда предназначена дл€ копировани€ файлов и директорий.

—амый простой пример сделать копию: cp 123.txt copy123.txt. ћожно скопировать директорию cp folder1 folder2. » команда откажетс€ выполн€тс€, потому, что по умолчанию рекурсивно не работает. ¬ папке folder1 наход€тс€ файлы. » если мы хотим это осуществить то используем ключ Цr или ЦR.

cp folder1 folder2

ƒанна€ команда очень важна, т.к приходитс€ использовать ее достаточно часто, например при настройке, какогоЦнибудь важного демона. ѕрежде чем вносить правки в файл конфигурации данного демона, оригинальный конфигурационный файл лучше всего скопировать.


 оманда mv

man mv

ƒанна€ команда позвол€ет перенести файлы или папки, или переименовать (перенести данные из одного имени в другое). ƒл€ примера, скажем файл 456.txt перенести в файл something.txt, т.е mv 456.txt something.txt.  ак мы видим файл 456 исчез, а по€вилс€ something.txt

-ls

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

mv something.txt folder1/ 

¬от так будет выгл€деть команда. ј также можно вернуть его обратно, командой:

mv folder1/something.txt .  

¬ конце знак точки выполн€ет функцию обозначени€ текущей папки. јналогичные действи€ мы можем производить с папками. — помощью команд mv и cp.


 оманда rm

man rm

ƒанна€ команда предназначена дл€ удалени€ папок и файлов.

  • rm 123.txt - удаление файла
  • rm folder1 Ц удаление каталога, но команда выдает ошибку. Ёто происходит потому, что в папке находитс€ файл. ≈сли мы хотим удалить рекурсивно, то необходимо добавить ключ Цr, а если без предупреждений и принудительно , то еще ключик Цf. »тогова€ команда будет выгл€деть следующим образом.
rm Цrf folder1
rm Цrf folder1

≈сть еще одна команда котора€ удал€ет непосредственно папки, называетс€ она rmdir. ћануал посмотреть вы можете по ней командой man rmdir. ƒанна€ команда удал€ет непосредственно пустые директории. –аботает достаточно близко по функционалу к rm.


 оманда file

man file

 оманда определ€ет тип файла. ѕерейдем в папку Folder.

cd folder

ѕопробуем определить тип файла file yandex.url, как мы можем убедитс€ команда выдает, что данный файл €вл€етс€ текстовым.

file yandex.url

≈сли мы наберем, например, File *, то команда применитс€ ко всем файлам в текущей директории и определит все типы файлов.

¬ажной частью работы с файлами и папками €вл€ютс€ √рупповые —имволы.

  • * - все что угодно (замен€ет любое количество символов)
  • ? Ц любой символ (одиночный символ, ?? Ц два символа)
  • ! Ц не (отрицание)
  • [ac] Ц a или с
  • [a-c] Ц a,b,c

—оздал несколько новых файлов:

touch bag.txt
touch bat.txt
touch cat.txt
touch sat.txt

ls * - дает занимательную картинку, где видны файлы и папки.

ls

 оманда ls *.* нам покажет только те файлы которые имеют расширени€. ѕерва€ звездочка, означает любое им€, втора€ звездочка указывает на любое расширение. ћы можем указать на конкретное количество символов обозначив их знаками У?Ф. Ќапример, ls *.??? Ц это означает, что подход€т любые файлы, у которых расширение из 3-х любых символов. «наки вопросов и звездочек, можно использовать с сочетани€ми букв и других символов. ћожно сказать, покажи нам все файлы, которые начинаютс€ с букв a или b, команда ls [ab]*.

“акже можно использовать конструкцию ls [a-m]*. —ледовательно, работают все конструкции с групповыми символами.


 оманда find

man find

ƒанна€ команда будет осуществл€ть поиск файлов по иерархической структуре папок.

ѕопробуем найти в директории все файлы:

find * .
find

ѕолучим вот такой ответ на данную команду. ” данной команды очень много ключей. ћожем дл€ примера вз€ть такую конструкцию find . Цname УIn*Ф . ƒанна€ конструкци€ обозначает поиск в текущей папке, по имени, которое начинаетс€ с In и имеет в имени любое количество символов. ƒанную команду можно использовать дл€ поиска файлов например по размеру: find . Цsize +5M . —ледовательно, данным запросом мы ищем все файлы в текущем каталоге с размером более 5 MB.


 оманда cpio

–абота с архивами очень важна€ часть операций с файлами. ƒл€ того, чтобы разобратьс€ в данном вопросе рассмотрим следующую команду.

man cpio

ƒанна€ команда позвол€ет копировать файлы в архивы и из архивов. ƒанна€ команда позвол€ет работать с архивами, грубо говор€ это двоичный архиватор. —мотрим, что есть в директории ls.

ls

ƒалее даем вот такую команду: ls | cpio Цo > ../test.cpio

¬ результате получили файл

test.cpio

ѕо€снени€, что мы сделали. ћы вз€ли вывод команды ls по конвейеру передали на вход команды cpio с ключем Цo, который создает архив и то, что должно получитс€ мы указали папку .. т.е родительска€ директори€ и файл test.cpio.  оманда выполнилась и вывела число блоков, сколько обработалось. » переместившись на уровень выше, в родительскую директорию мы можем увидеть, что файл по€вилс€.

ј можем сделать следующую вещь: find . Цname Ф*.txtФ | cpio Цo > test2.cpio. “.е мы можем выполнит поиск всех текстовых файлов в текущей директории и заархивировать, причем положить в текущую директорию.

—оздадим папку mkdir extract. » перейдем в нее cd /root/extract. “еперь мы попробуем разархивировать cpio Цid < .. / test2.cpio

cpio Цid <  .. / test2.cpio

 ак мы видим все текстовые файлы по€вились. ѕо сути, что мы сделали. ћы сказали команде cpio подн€тьс€ на уровень выше вз€ть test2.cpio и разархивировать в текущий каталог.  ак видите там же попалс€ каталог folder2, а попалс€ т.к в нем тоже есть текстовые файлы. Ќапоминаю, что команда find работает так же со вложенными файлами, поэтому данный каталог и попал в архив.


 оманда dd

≈ще немного про архивы.

man dd

 онвертирует и копирует файлы. ƒанна€ команда умеет копировать, не части файловой системы, как файлы или папки, а умеет копировать блочные устройства или его части, например, диск. ƒл€ того, чтобы показать, как это работает € примонтировал еще один раздел на 5 √Ѕ.

df -h

ƒалее пишем следующее, наход€сь в директории cd /root/extract.

dd if=/dev/sdc of=drive.img
  • dd - сама команда
  • if (Input файл) - диск
  • of (Output файл) - путь куда положить.
df -h

ћы видим, что команда столько-то получила, столько-то отправила данных в файл.

drive.img

 ак можно увидеть, команда отработала. —ледовательно, команда dd может сделать целиком резервную копию блочного устройства.


 оманда gzip

ѕереходим непосредственно к архиваторам.

man gzip

”тилита, котора€ позвол€ет разжимать и упаковывать файлы.

gzip drive.img
gzip drive.img

ѕолучаем в итоге, что вместо drive.img гигантского, получилс€ более компактный drive.img.gz т.е команда gzip не просто создает архив , но и убивает оригинальный файл. —оответственно если мы хотим его отзиповать, то используем команду gunzip drive.img.gz

¬се архиваторы различаютс€ по типу сжати€.


 оманда bzip2

man bzip2

ƒанный архиватор уже работает с блоками. ≈сли его запустить аналогичным образом предыдущему архиватору, то получим файл немного меньшего размера. Ёто значить, что данный архиватор работает более эффективно с данным типами файлов. –азархиваци€ осуществл€етс€ так же аналогично.


 оманда tar

“еперь посмотрим легендарный архиватор tar

man tar

Ќаиболее часто использующийс€ архиватор. — множеством функций и ключей. ѕример использовани€.

tar cvf archive.tar folder2
tar cvf archive.tar folder2

—интаксис простой, команда с Ц создать , v - показывать процесс, f - файл, archive.tar - путь к месту где создастс€ архив, folder2 папка которую архивируем.

“еперь мы можем подключить сжатие архиватора gzip, в опции надо добавить ключ УzФ и выходной файл надо назвать archive.tar.gz.

ƒл€ разархивации мы указываем ключи xvf и путь до архива.