- Удаление Папки и Файлов в Linux
- Команда rmdir
- Удаление Папки в Linux с Помощью Команды rmdir
- Команда rm
- Как Удалить Файл в Linux с Помощью Команды rm
- Итоги
- Работа с «плохими» файлами в командной строке в Linux
- В названии файла есть служебный символ bash
- Имя файла начинается с дефиса
- Удаляем по wildcard
- Файлы с управляющим символом в названии
- Удаление файлов с символами utf8
- Перекодировка имени файла
- Автокомплит
- Удаляем файл через меню выбора
- Удаление по номеру inode
- Удаление по hex-коду
- Как удалить файл в Linux через терминал
- Удаление файлов с помощью rm
- Синтаксис и опции команды rm
- Поиск и удаление файлов с помощью find
Удаление Папки и Файлов в Linux
Работать с командной строкой должен уметь каждый будущий системный администратор и опытный пользователь Linux. Сегодня мы рассмотрим ещё одну базовую функцию — удаление папки и файлов в Linux с помощью командной строки.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.
Команда rmdir
Команда, используемая, чтобы удалить пустую папку в Linux через командную строку — это rmdir.
Основной синтаксис этой команды довольно простой. Вот пример:
- rmdir — это команда
- [опция] — опциональный модификатор, который изменяет поведение команды
- НазваниеПапки — каталог, который вы хотите удалить
Если опция не указана, rmdir просто удаляет каталог, имя которого указано в качестве места назначения. Перед использованием этой команды вам нужно будет войти на сервер VPS через SSH. Вот статья, которая поможет вам это сделать.
Удаление Папки в Linux с Помощью Команды rmdir
Перед использованием команды rmdir мы рекомендуем вам проверить список файлов в каталоге с помощью команды ls. В нашем случае у нас есть каталог с названием Dir1.
Эта команда удалит пустой каталог с именем Dir1. Довольно просто, правда?
Вы также можете удалить несколько каталогов, разделив их имена пробелами. Например:
После выполнения этой команды каталоги с именами Dir1, Dir2 и Dir3 будут удалены.
Допустим, у нас есть папка Dir3. Dir3 содержит подкаталоги и файлы. Теперь, если мы используем команду:
То получим ошибку:
Как вы уже могли догадаться, rmdir работает только с пустыми каталогами.
Rmdir — умная утилита, которая позволяет удалять только пустые папки. Таким образом, она защищает данные от случайной потери. Помните, что удалённые данные в любом дистрибутиве Linux практически невозможно восстановить.
Опция -p позволяет удалить папку через командную строку, а также её родительские каталоги.
Эта команда удалит Dir3 и его родительские каталоги Dir2 и Dir1.
Опция -v выводит диагностический текст для каждого обработанного каталога. Использование этой опции выведет подтверждение со списком всех каталогов, которые были удалены.
Команда rm
Команда rmdir отлично подходит для безопасного удаления неиспользуемых и пустых каталогов. Если вы хотите удалить файл или каталог, содержащий файлы, вам придётся использовать команду rm.
Синтаксис этой команды похож на rmdir:
Как Удалить Файл в Linux с Помощью Команды rm
Давайте используем команду rm, чтобы удалить файл с именем article.txt:
Допустим, у нас есть каталог с именем Dir1, содержащий подкаталоги и файлы, чтобы удалить его, нам понадобится модификатор -r. Команда будет выглядеть так:
Опция -r рекурсивно удаляет каталоги и их содержимое.
Ещё одна полезная опция -i. Она попросит вас подтвердить удаление каждого отдельного файла, благодаря чему вы сможете избежать любых неприятных ошибок.
Вы также можете удалить пустые каталоги, используя опцию -d. Следующая команда удалит пустую папку с именем Dir1:
Вы можете использовать подстановочный знак (*) и обычные расширения для сопоставления нескольких файлов. Например, следующая команда удалит все файлы PDF в текущем каталоге.
Вы можете использовать вариации всех перечисленных выше команд для удаления файлов с другими расширениями, такими как .txt, .doc, .odt и другими.
Опция -f позволяет принудительно удалить всё, что находится в каталоге. Команда будет выглядеть так:
Приведённая выше команда рекурсивно и принудительно удалит всё, что находится в каталоге Dir1, не запрашивая подтверждения в терминале.
Вы также можете удалить несколько папок за раз. Следующая команда удалит три каталога Dir1, Dir2 и Dir3.
Поздравляем, вы успешно освоили основные функции команд rm и rmdir, позволяющие удалить файл или папку в Linux!
Итоги
Случайное удаление папки или даже одного файла в Linux может привести к серьёзным проблемам. Вот почему важно освоить две основные команды для удаления файлов и каталогов — rm и rmdir. В этой статье мы рассмотрели эти две команды и различные опции, которые позволяют их модифицировать.
Надеемся, что эта статья была полезной! И помните, что после удаления файла или каталога из Linux вы не сможете их восстановить, поэтому будьте предельно осторожны! Удачи.
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Источник
Работа с «плохими» файлами в командной строке в Linux
При работе в командной строке администраторы часто сталкиваются с необходимостью что-то сделать с определенным файлом: удалить, переместить, скопировать. При выполнении подобных задач зачастую приходится обращаться к файлам по имени, что может быть затруднительно, поскольку в именах файлов могут встречаться самые разные символы. Даже те, которых нет на клавиатуре. В этом плане работу может облегчить файловый менеджер, в котором файл можно просто выделить и совершить с ним нужное действие. Но для тех, кто привык работать исключительно в командной строке, предлагаются следующие способы.
В качестве shell-оболочки рассмотрим bash, как самую используемую. А в качестве операции над файлами рассмотрим удаление, как самую деструктивную.
Ситуации могут быть разными. В текущей директории могут быть файлы, которые нужно удалить вместе с теми, которые нужно оставить. Имена у них могут быть самыми разными. Причем первые от последних могут отличаться только одним каким-нибудь заковыристым символом.
В названии файла есть служебный символ bash
Самый простой случай. Для удаления файлов, содержащих в своем названии служебные символы вроде пробелов, кавычек, двойных кавычек, звездочек, обратные кавычки и др. можно заэкранировать обратным слешем или использовать одинарные кавычки:
С помощью одинарных кавычек нельзя удалить файл, в названии которого есть одинарная кавычка, даже заэкранировав ее.
С полным списком служебных символов и механизмом экранирования в bash можно ознакомиться в man bash. Раздел QUOTING.
Имя файла начинается с дефиса
Удалить файл, начинающийся с дефиса простым экранированием не получится, и команда rm будет воспринимать дефис, как начало своего аргумента. Решить проблему довольно просто:
Удаляем по wildcard
Если удаление файлов попадает под wildcard-маску, то можно удалить всю группу файлов:
Файлы с управляющим символом в названии
В названии файла может встречаться управляющий ASCII-символ, такой как перевод строки (\n), табуляция (\t), backspace (\b). Это символы с ASCII-кодами менее 0x20, а также символы DELETE и ESC. Для удаления таких файлов подходит конструкция:
Другим способом удаления таких файлов являяется ввод управляющего символа с клавиатуры. Для этого нужно воспользоваться комбинацией клавиш, которая экранирует следующий введенный символ, тем самым запрещая системе обрабатывать его. Как правило, эта комбинация CTRL+V. Точно убедиться в этом можно с помощью команды stty -a, посмотрев на параметр lnext. Удалим файл, содержащий символ ESC:
Удаление файлов с символами utf8
Если имя файла содержит символ в кодировке utf8, который мы не можем набрать на клавиатуре, то удалить такой файл можно выделением его мышкой, копированием в буфер обмена и последующей вставкой на ввод команды rm. Главное условие состоит в том, что наш терминал должен работать в кодировке utf8. Кодировка выставляется в настройках терминала. Будь то xterm, putty или брутальный linux tty.
Перекодировка имени файла
Подозревая, что имя файла находится в кодировке, отличной от кодировки терминала, мы можем выполнить перекодирование всех файлов в текущей директории. В результате файлы с битой кодировкой будут перекодированы, а файлы с ascii-символами изменений не претерпят. Существенный плюс этого способа – приведение всех файлов в читабельный вид.
Как видно, чтобы осуществить правильное перекодирование нужно знать две кодировки: предполагаемую кодировку файла и кодировку нашего терминала. Наиболее трудно распознать предполагаемую кодировку файла по непонятным символам. Есть замечательная табличка
Также можно воспользоваться сторонними программами, которые попытаются распознать кодировку автоматически. Например, онлайн-декодер Лебедева.
Если вы встретили такие символы в примонтированном media-носителе или смонтированном разделе Windows, не спешите ничего перекодировать. Возможно, вы просто указали неправильные опции монтирования.
Автокомплит
В случае, если в директории название требуемого файла начинается уникально, и это название можно однозначно сформировать автокомплитом, то это довольно простой способ удалить файл:
Удаляем файл через меню выбора
Если мы дошли сюда, дело плохо. Попробуем удалить конкретный файл, составив для этого меню выбора. В итоге, все что нам останется сделать – это выбрать нужный пункт меню вместо ввода имени файла. Для этого нам нужно запрограммировать действие, которое будет происходить с файлом или файлами после ввода нами нужных пунктов меню.
Удаление по номеру inode
Удалить файл можно по его номеру inode. Номер inode уникально идентифицирует файл в файловой системе. Узнать номер inode можно с помощью команды ls, а удалить – с помощью find. Недостаток этого способа, такой же, как у предыдущего. Неудобно, в случае большого числа файлов.
Удаление по hex-коду
И нельзя не упомянуть один суровый метод. Удаление по hex-кодам. Суть такова: мы узнаем hex-коды всех байтов в имени файла, а затем удаляем файл, указывая вместо имени hex-коды.
Хорошо, все-таки, что на практике такие файлы попадаются нечасто.
Источник
Как удалить файл в Linux через терминал
В операционной системе Linux практически все операции можно выполнить с помощью терминала. Для этого в системе предусмотрено мужество очень мощных и гибких команд и утилит, которые позволяют очень тонко управлять системой.
В этой инструкции мы рассмотрим удаление файлов. Это типичная и очень простая процедура, выполнять которую должен уметь любой пользователь. Здесь вы узнаете, как удалить файл в Linux через терминал и какие команды для этого понадобятся. Статья будет актуальной для любого дистрибутива Linux, например, Ubuntu Linux, Debian и т. д.
Удаление файлов с помощью rm
Для того чтобы удалить файл в Linux через терминал необходимо использовать команду « rm » (от английского «remove»). Данная команда удаляет все указанные ей файлы, но по умолчанию не удаляет каталоги. Чтобы позволить команде « rm » удалять каталоги нужно добавить опцию « -r » или « -R ». Более подробно об этом во второй половине статьи.
Также нужно отметить, что команда « rm » не выполняет физическое удаление данных, вместо этого указанные файлы просто удаляются из файловой системы, а занимаемое ими место маркируется как свободное. Это означает, что после удаления данные остаются на диске и пока они не будут перезаписаны другими данными, их можно будет восстановить с помощью специальных программ. Для физического удаления данных с перезаписью диска следует использовать команду « shred ».
В общем случае для удаления файла в Linux через терминал достаточно просто ввести в терминал « rm » и указать имя документа. Например, для того чтобы удалить « file1.txt » из текущего каталога нужно выполнить вот такую команду:
Если удаляемый файл находится не в текущем каталоге, то в терминале нужно указать полный путь. Например, это может выглядеть вот так:
При необходимости, с помощью команды « rm » можно удалить сразу несколько файлов. Для этого просто введите « rm » и перечислите имена через пробел, например:
Для удаления большого количества похожих файлов можно использовать маски. Например, чтобы удалить все документы с расширением txt нужно выполнить вот такую команду:
Также маску можно использовать для удаления вообще всех файлов. Например, чтобы удалить все файлы в текущей папке нужно выполнить:
Аналогичным способом можно удалить все файлы в определенной папке:
Главное, соблюдать осторожность, так как при использовании масок можно удалить что-то лишнее.
Синтаксис и опции команды rm
Команда « rm » имеет множество опций, что позволяет очень тонко управлять процессом удаления файлов. Вы можете изучить все доступные опции если введете в терминал Linux команду « man rm ». Здесь же мы будем рассматривать самые простые и часто используемые опции.
Синтаксис команды « rm » выглядит следующим образом:
Разберем основные опции команды rm:
Теперь разберем некоторые опции, которые часто используются при удалении файлов в Linux через терминал. Например, очень часто возникает необходимость удалить папку вместе с всем содержимым. Для этого нужно использовать опцию «-r», которая включает рекурсивный обход папок. Например, для того чтобы удалить папку «folder1» и все ее содержимое нужно выполнить:
Если права доступа к файлу разрешают только чтение, то в терминале Linux появится запрос подтверждения, и чтобы продолжить вам нужно будет ввести букву « y » (от англ. «yes»).
Чтобы избежать такой ситуации и удалять все файлы без предупреждения нужно использовать опцию « -f ». Например:
Не редко возникает необходимость удалить папку вместе со всеми файлами и без запросов на подтверждение. В этом случае нужно комбинировать опции « -r » и « -f ». В результате команда выглядит вот так:
Если вы, наоборот, хотите каждый раз получать запрос подтверждения, то команду « rm » нужно выполнять с опцией « -i ». Например, для того чтобы удалить все файлы в текущем каталоге с запросом подтверждения нужно выполнить:
Также бывает полезной опция « -v ». При ее использовании в терминале будет появляться подробная информация о выполняемых действиях. Например, для того чтобы удалить все файлы в текущем каталоге и вывести информацию в терминал нужно выполнить:
Также вывод информации можно перенаправить в файл. Для этого после команды нужно использовать оператор перенаправления вывода ( > ) и указать название файла. Например:
Естественно все эти опции можно комбинировать, в зависимости от ваших задач.
Поиск и удаление файлов с помощью find
Также нужно отметить, что существуют и альтернативные способы удаления файлов. Например, вы можете использовать команду поиска « find ». Команда « find » будет полезна в тех случаях, когда вам нужно удалить определенные файлы в целом ряде папок.
Например, для того чтобы найти и удалить все txt-файлы в текущей и во всех вложенных папках можно выполнить вот такую команду:
Чтобы узнать больше об использовании « find » введите в терминал команду « man find ».
Источник