Проблемы при удалении файлов


Метки: | |
Просмотров: 8004

Давайте рассмотрим некоторую особенность, связанную с командой rm и ее применением к файловой системе. Вы не сможете, как бы не старались, удалить каталог, который является поддержкой файловой системы, вы не сможете. Да и зачем удалять его? Давайте вообще их не трогать.

Как удалять файл, который имеет в своем имени пробел? Самый простой способ – вызвать команду rm и указать имя файла в качестве пары метров – не подойдет. Ведь заданное имя, эта команда будет интерпретировать как отдельные параметры. Но на самом деле, данная задача решается не сложно.

Нужно всего лишь ввести имя файла в кавычках.

ls
   cousin harold.jpg       cousin_roy.jpg cousin_beth.jpg
   rm cousin harold.jpg
   rm: cannot remove 'cousin': No such file or directory
   rm: cannot remove 'harold.jpg':
   No such file or directory
   rm "cousin harold.jpg"
ls
    cousin_roy.jpg       cousin_beth.jpg

И еще есть проблема: как удалять файлы, имя которых начинаются с дефисом?

ls
    cousin_roy.j pg    cousin_beth.j pg
   rm cousin_roy.jpg
   rm: invalid option с
   Try 'rm help' for more information.

Командой rm вы воспринимаете символ как признак опции, но в этом случае опция не распознается, начинается с буквы с, а далее следуют символы ousin_roy.jpg. В конечном итоге, команда не знает, что делать.

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

ls
    cousin_roy.j pg    cousin_beth.jpg
   rm    cousin_roy.jpg
   ls
   cousin_beth.jpg

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

ls
    cousin_roy.jpg     cousin_beth.jpg
   rm ./ cousin_roy.jpg
   ls
   cousin_beth.jpg

Данный пример, в который раз подтвердил: изобретательность юзеров операционной системы Linux без границ. Но все же, лучше будет, если в начало файла дефис не включать.

Оставьте комментарий!

Комментарий будет опубликован после проверки

Имя и сайт используются только при регистрации

(обязательно)