Удаление файлов и каталогов. Тема –ОС Linux: Команды работы с файлами и каталогами: mkdir, cat, cp, mv, rm, rmdir, more

Лабораторная работа № 11

Тема –ОС Linux: Команды работы с файлами и каталогами: mkdir, cat, cp, mv, rm, rmdir, more.

Выполнение работы:

Создание новых каталогов

Для создания нового каталога используется команда mkdir (сокращение от make directory). В качестве аргумента этой команде надо дать имя создаваемого каталога. Во вновь созданном каталоге автоматически создаются две записи: .(ссылка на этот самый каталог) и .. (ссылка на родительский каталог).

Выполните следующие команды в каталоге /home/stud:

$ mkdir sua $ ls Вы создали новый каталог sua и убедились в этом.Перейдите в созданный каталог:$ cd suaи убедитесь в этом командой pwd.Убедитесь, что каталог sua пуст:/home/stud/sua$ ls –lПросмотрите ссылки в созданном каталоге:/home/stud/sua$ ls -f

Создание файлов

Команда catчасто используется для создания файлов. По команде cat на стандартный вывод (т. е. на экран) выводится содержимое указанного файла (или нескольких файлов, если их имена последовательно задать в качестве аргументов команды). Если вывод команды cat перенаправить в файл, то можно получить копию какого-то файла:

$ cat file1 > file2

Собственно, первоначальное предназначение команды cat как раз и предполагало перенаправление вывода, так как эта команда создана для конкатенации, т. е. объединения нескольких файлов в один:

$ cat file1 file2 ... fileN > new-file

Именно возможности перенаправления ввода и вывода этой команды и используются для создания новых файлов. Для этого на вход команды cat направляют данные со стандартного ввода (т. е. с клавиатуры), а вывод команды — в новый файл:

$ cat > newfile

После того, как вы напечатаете все, что хотите, нажмите комбинацию клавиш <Ctrl>+<D> или <Ctrl>+<C>, и все, что вы ввели, будет записано в newfile. Конечно, таким образом создаются, в основном, короткие текстовые файлы.

Чтобы просмотреть содержимое файла введите:

$ cat newfile

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

$ cat > .myhide.txt

Копирование файлов

Для копирования файлов используется команда ср (сокращение от copy).

$ cp [options] source_directory new_directory

Файлы, содержащиеся в каталоге source_directory копируются в каталог new_directory. Для копирования надо иметь права на чтение файлов, которые копируются, и права на запись в каталог, в который производится копирование.

Если в качестве целевого указывается существующий файл, то его содержимое будет затерто, поэтому при копировании надо соблюдать осторожность. Впрочем, можно использовать команду cp с опцией -i, тогда перед перезаписью существующего файла будет запрашиваться подтверждение.

-R или -r Если source — каталог, то копируется как он, так и все входящие в него подкаталоги, т. е. сохраняется исходная форма дерева каталогов
-f Перезаписывать файлы при копировании (если такие уже есть) без дополнительных предупреждений

Пример:

/home/stud/sua$ ср –r /usr/include . /home/stud/sua$ ср /usr/include/* .

В первом случае будет скопирован каталог include со всем содержимым, а во втором – все файлы данного каталога в файл или каталог, который указан последним аргументом. Обратите внимание, что для указания текущего каталога используется символ ..

Просмотрите содержимое каталога sua – убедитесь что произошло копирование.Скопируйте файлы newfile и .myhide.txt, созданные ранее в каталог include каталога sua: /home/stud/sua$ ср newfile .myhide.txt include/Убедитесь в этом командой:/home/stud/sua$ ls -f

 

Перемещение файлов

Если вам необходимо не скопировать, а переместить файл из одного каталога в другой, вы можете воспользоваться командой mv. Синтаксис этой команды аналогичен синтаксису команды cp. Более того, она сначала копирует файл (или каталог), а только потом удаляет исходный файл (каталог). И опции у нее такие же, как у cp.

Команда mv может использоваться не только для перемещения, но и для переименования файлов и каталогов (т. е. перемещения их внутри одного каталога). Для этого надо просто задать в качестве аргументов старое и новое имя файла:

$ mv oldname newname

Но учтите, что команда mv не позволяет переименовать сразу несколько файлов (используя шаблон имени), так что команда mv *.xxx *.yyy не будет работать.

Удаление файлов и каталогов

Для удаления ненужных файлов и каталогов в Linux служат команды rm (удаляет файлы) и rmdir (удаляет пустой каталог). Для того, чтобы воспользовался этими командами, вы должны иметь право записи в каталоге, в котором расположены удаляемые файлы или каталоги. При этом полномочия на изменение самих файлов не обязательны. Если хотите перед удалением файла получить дополнительный запрос на подтверждение операции, используйте опцию -i.

Если вы попытаетесь использовать команду rm (без всяких опций) для удаления каталога, то будет выдано сообщение, что это каталог, и удаления не произойдет.

Для удаления каталога надо удалить в нем все файлы, после чего удалить сам каталог с помощью команды rmdir. Однако можно удалить и непустой каталог со всеми входящими в него подкаталогами и файлами, если использовать команду rmс опцией -r.

Если вы дадите команду rm *, то удалите все файлы в текущем каталоге. Подкаталоги при этом не удалятся. Для удаления как файлов, так и подкаталогов текущего каталога надо тоже воспользоваться опцией -r.

Однако всегда помните, что в Linux нет команды восстановления файлов после их удаления (даже если вы спохватились сразу же после ошибочного удаления файла или каталога)!

Так что дважды подумайте до удаления чего-либо и не пренебрегайте опцией -i.