Разное

Команды rm и rmdir. Команды Linux для работы с файлами

Команды rm и rmdir. Команды Linux для работы с файлами
rm [-f | -i] [-dIPRrvW] file ... unlink файл

Команда rm пробует удалить файлы, указанные в качестве аргументов командной строки, не являющиеся директориями. Если права доступа не позволяют запись, а устройством ввода (stdin ), является терминал, у пользователю будет запрошено подтверждение удаления. Поддерживаемые опции: -d Попытаться удалить директории, как обычные файлы. -f Не запрашивать разрешение на удаление, вне зависимости от установленных прав доступа. В случае отсутствия файла, информация об этом выведена не будет, кроме того не будет изменен код об удачном завершении операции, для информирования о неудачном завершении. Так-же данная опция отменяет любую, ранее полученную, опцию -i . -i Интерактивный режим с запросом подтверждения удаления каждого файла, вне зависимости от установленных на файл прав доступа и является-ли терминал устройством stdin . Данная опция отменяет, ранее указанную опцию -f . -I Запрос, если удалению подлежит, более 3 файлов, или перед рекурсивным удалением директории. Данная опция обеспечивает почти такой-же уровень защиты от ошибки, как опция -i , при гораздо меньшем количестве запросов подтверждений. -P Перезаписывать файлы перед удалением. Сначала файлы перезаписываются значением 0xff , затем 0x00 , затем 0xff , после чего удаляются. Файлы с несколькими жёсткими ссылками не могут быть перезаписаны, ни удалены без указания опции -f , при попытке удаления, будет выведено предупреждение. Если с данной опцией попробовать удалить файл с правами доступа "только чтение", будет выведено сообщение об ошибке а выполнение команды rm будет прервано. Файл при этом, удален или перезаписан, не будет. -R Попытаться удалить дерево каталогов, корень которого указан аргументом файл . Данная опция автоматически включает опцию -d . Если так-же указана опция -i , будут выводиться запросы на удаление содержимого каждой директории. В случае, если пользователь не подтвердил удаление директории, удаление текущего каталога будет пропущено. -r Аналог опции -R . -v Выводит дополнительную информацию при удалении файлов. -W Попытаться восстановить файлы, переданые в качестве параметров. В данный момент эта опция может быть использована только для восстановления файлов, "замазанных штрихом" (covered by whiteouts ) в файловой системе union (см. undelete(2) ). Команда rm удаляет символические ссылки, но сами файлы, на которые эти ссылки указывают, при этом удалены не будут. При попытке удалить / , . или .. будет выведено сообщение об ошибке. В случае вызова команды rm , как unlink , может быть передан только один аргумент, который не может быть директорией. В данном режиме не могут быть переданы никакие опции, выполняется только unlink(2) с переданным аргументом. rm возвращает 0 в случае удачного удаления всех переданных ей каталогов и файлов. В противном случае, результат >0 . Команда rm использует getopt(3) для анализа переданных ей аргументов, что позволяет ей принимать опцию - ", которая вызовет остановку обработки переданных флагов там, где эта опция встретится. Это позволяет удалять файлы, имена которых начинаются с символа минус (- ). Например: rm -- -filename Того же результата можно добиться, задавая имя файла с указанием абсолютного или относительного пути. Например: rm /home/user/-filename rm ./-filename Если опция -P указывается совместно с опцией -f , то файл будет перезаписан и удалён даже если он имеет жёсткие ссылки. Смотри также chflags(1), rmdir(1), undelete(2), unlink(2), fts(3), getopt(3), symlink(7) Возможные проблемы Опция -P подразумевает, что нижележащая файловая система является файловой системой с фиксированными блоками (fixed-block file system ). UFS является такой системой, а LFS - нет. Кроме этого, перезаписываются только обычные файлы, файлы всех остальных типов - нет.

НАЗВАНИЕ
rm - удаление файлов

СИНТАКСИС

Rm [-f] [-i] файл... rm -r [-f] [-i] каталог... [файл...]

ОПИСАНИЕ
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла не обязательно. Следует заметить, что при удалении файла в Linux, он удаляется навсегда. Здесь нет возможностей вроде "мусорной корзины" в windows 95/98/NT или команды undelete в DOS. Так что, если файл удален, то он удален!

Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы y, то файл удаляется, иначе - нет. Если стандартный ввод назначен не на терминал, команда rm ведет себя так же, как при наличии опции -f.

Допускаются следующие три опции:

-f Команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав (см. опцию -r).
-r Происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на запись в которые нет прав, не запрашивается, если задана опция -f или стандартный ввод не назначен на терминал и не задана опция -i. При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir , так как последняя способна удалить только пустой каталог. Но команда rm -r может доставить немало острых впечатлений при ошибочном указании каталога!
-i Перед удалением каждого файла запрашивается подтверждение. Опция -i устраняет действие опции -f; она действует даже тогда, когда стандартный ввод не назначен на терминал.

ПРИМЕРЫ Опция -i часто используется совместно с -r. По команде:

Rm -ir dirname запрашивается подтверждение: directory dirname: ?

При положительном ответе запрашиваются подтверждения на удаление всех содержащихся в каталоге файлов (для подкаталогов выполняются те же действия), а затем подтверждение на удаление самого каталога.

ДИАГНОСТИКА
Смысл всех сообщений самоочевиден.

Запрещено удалять файлы. и.., чтобы не нарушить целостность файловой системы. Команда

Rm -r .* приведет к выдаче сообщений об ошибках.

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

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

Если вы дадите команду rm *, то удалите все файлы в текущем каталоге.

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

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

Команды more и less

Команда cat позволяет вывести на стандартный вывод (на экран) содержимое любого файла, однако она используется для этих целей очень редко, разве что для вывода очень небольших по объему файлов. Дело в том, что содержимое большого файла мгновенно проскакивает на экране, и пользователь видит только последние строки файла. Поэтомуcat используется в основном по ее прямому назначению - для конкатенации файлов, а для просмотра содержимого файлов (конечно, текстовых) используются командыmore иless (или текстовые редакторы).

Команда-фильтр more выводит содержимое файла на экран отдельными страницами, размером как раз в целый экран. Для того, чтобы увидеть следующую страницу, надо нажать на клавишу пробела. Нажатие на клавишу приводит к смещению на одну строку. Кроме клавиш пробела и в режиме паузы еще некоторые клавиши действуют как управляющие (например, клавиша возвращает вас на один экран назад), но мы здесь не будем приводить полного их перечня, как и перечня опций команды. Вам для начала надо еще только запомнить, что выйти из режима просмотра можно с помощью клавиши , так как если вы этого не знаете, то вам придется долго и нудно нажимать пробел, пока вы не доберетесь до конца длинного файла. Обо всех опциях команды more вы можете прочитать в интерактивном руководствеman илиinfo.

Утилита less, разработанная в рамках проекта GNU, содержит все функции и команды управления выводом, имеющиеся в программеmore, и некоторые дополнительные, например, позволяет использовать клавиши управления курсором (<Стрелка вверх>, <Стрелка вниз>, , ) для перемещения по тексту.

Вспомните, мы уже говорили об этом, когда рассматривали интерактивную подсказку man.

Команды more иless позволяют производить поиск подстроки в просматриваемом файле, причем командаless позволяет производить поиск как в прямом, так и в обратном направлении. Для организации поиска строки символовstring надо набрать в командной строке программы в нижней части экрана (там, где двоеточие)/string. Если искомая строка будет найдена, будет отображен соответствующий кусок текста, причем найденная строка будет находиться в самом верху экрана.

Главная > Операционные системы > UNIX

RM(1)

НАЗВАНИЕ
rm - удаление файлов или каталогов

СИНТАКСИС

Rm [-f] [-i] файл... rm -r [-f] [-i] каталог... [файл...]

ОПИСАНИЕ
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла не обязательно.

Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы y, то файл удаляется, иначе - нет. Если стандартный ввод назначен не на терминал, команда rm ведет себя так же, как при наличии опции -f.

Допускаются следующие три опции:

-f Команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав (см. опцию -r).
-r Происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на запись в которые нет прав, не запрашивается, если задана опция -f или стандартный ввод не назначен на терминал и не задана опция -i.
При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir(1) , так как последняя способна удалить только пустой каталог.
-i Перед удалением каждого файла запрашивается подтверждение. Опция -i устраняет действие опции -f; она действует даже тогда, когда стандартный ввод не назначен на терминал.

ПРИМЕРЫ Опция -i часто используется совместно с -r. По команде:

Rm -ir dirname запрашивается подтверждение: directory dirname: ?

При положительном ответе запрашиваются подтверждения на удаление всех содержащихся в каталоге файлов (для подкаталогов выполняются те же действия), а затем подтверждение на удаление самого каталога.

СМ. ТАКЖЕ
rmdir(1) .
rmdir(2) , unlink(2) в Справочнике программиста.

КОДЫ ЗАВЕРШЕНИЯ

0 Все файлы и каталоги были успешно удалены. 2 В противном случае.

ДИАГНОСТИКА
Смысл всех сообщений самоочевиден.

Запрещено удалять файлы. и.., чтобы не нарушить целостность файловой системы. Команда

Rm -r .* приведет к выдаче сообщений об ошибках.



Copyright © 2024. Портал о компьютерной технике