Удаление файлов и каталогов. Тема –ОС 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.