Лабораторная работа № 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.
/home/stud/sua$ rm include/newfile /home/stud/sua$ rm include/*/home/stud/sua$ rmdir include/





