Skip to content

Latest commit

 

History

History
107 lines (69 loc) · 7.82 KB

103_3.md

File metadata and controls

107 lines (69 loc) · 7.82 KB

103.3 Основные операции с файлами

Студент должен уметь управлять файлами и каталогами при помощи основных команд Linux

Изучаем :

  • копирование, перенос и удаление файлов и каталогов;
  • копирование нескольких файлов и каталогов, в том числе рекурсивно;
  • удаление файлов и каталогов, в том числе рекурсивно;
  • групповые символы (wildcard);
  • отбор файлов по типу, размеру, датам и т.д.;
  • работу с tar, cpio и dd.

**Термины и утилиты: **

  • cp
  • find
  • mkdir
  • mv
  • ls
  • rm
  • rmdir
  • touch
  • tar
  • cpio
  • dd
  • file
  • gzip
  • gunzip
  • bzip2
  • xz
  • групповые символы

Частой задачей администратора в Linux является работа с файлами и каталогами: создание, копирование, перемещение и удаление. Использование групповых символов вместе с инструментами консоли позволяют осуществлять эти действия с максимальной эффективностью.

Для создания директорий используется команда mkdir** имя_каталога , для удаления пустого каталога - rmdir **имя_каталога. Просмотр содержимого текущей директории – ls. Например:

ls ** l**_ (просмотреть содержимое текущего каталога);_

ls** fol *** _ (посмотреть содержимого каталогов, имена которых начинаются с " fol");_

Для копирования используется команда cp что_копировать куда_копировать , например:

cp ** R Folder NewFolder**_ (скопировать директорию " Folder" со всем содержимым в текущий каталог с именем новой директории " NewFolder");_

Для переноса используется команда mv что_переносить куда_переносить , например:

mv** file . txt folder 1/** (перенести " file. txt" в каталог " folder 1" в текущей директории);

Для удаления используется команда rm** что_удалить**, например:

rm ** rf folder 1 ** (удалить каталог folder__1 вместе с содержимым);

Для создания пустого файла, или обновления метки доступа существующего, используется команда touch имя_файла, а для получения информации о файле – команда file** имя_файла**.

Групповые символы, использующиеся при работе с текстовыми данными:

  • * – любое количество любых символов;
  • **? ** _ – любой символ;_
  • **! ** – не (любой символ кроме указанных);
  • **[ac] ** a или c ;
  • [a - c] _ –_ a , b , c_._

Например:

ls *** ** (вывести содержимое всех каталогов);

ls ?** at . txt **** ** (вывести содержимое файла с именем: любая первая буква, остальная часть имени " at. txt");

ls *** at . txt **** ** (вывести содержимое файла с именем, оканчивающимся на " at. txt");

ls **![ab]* ** (вывести содержимое файла или каталога с именем, начинающимся с любых символов, кроме " a" и " b");

Для поиска информации используется команда find , например:

find . –** name ****"\ *A *" ** (искать в текущей директории объекты, имеющие в имени символ " A");

find /** etc **** – size ** -5** M **** ** (искать в директории "/ etc" объекты размером менее 5 Мб);

find ** . –**** type **l (искать в текущей директории ссылки);

В среде Linux существует несколько распространённых архиваторов, использующихся для распаковки и упаковки объектов в единый файл:

  • с** pio** - двоичный архиватор, копирующий информацию в архив и обратно;
  • dd - копирование по блокам;
  • gzip и gunzip - утилита сжатия и восстановления файлов (контейнер одного файла);
  • bzip2 и bunzip2 - утилита сжатия и восстановления файлов (контейнер одного файла);
  • xz и unxz - утилита сжатия и восстановления файлов (контейнер одного файла);
  • tar - архиватор (работает с набором файлов и каталогов).

Например:

find . –** name **"*. txt" | **** cpio **** – o > ../ test . cpio (найти в текущей папке все файлы с расширением ". txt" и упаковать их в архив test . cpio_, расположив его на уровень выше текущей_ директории);

cpio -** id **** < **** test . cpio**_ (распаковать в текущий каталог архив " test. cpio", создавая при необходимости структуру директорий);_

dd** if =/ dev / sdb of = drive. img ** (скопировать носитель / dev / sdb в образ drive. img , располагающийся в текущей директории);

gzip** drive . img **** ** (сжать образ " drive. img" до " drive. img. gz", удалив исходный файл);

bunzip** 2 **** drive . img . bz ****2 ** (распаковать архив " drive. img. bz 2" в текущий каталог);

unxz** drive . img . xz **** ** (распаковать архив " drive. img. xz" в текущий каталог);

tar** cvf arch. tar ** **** folder (упаковать каталог " folder" в архив " arch. tar").

tar ** xvf archive. tar ** (распаковать архив " archive. tar").