Как удалять файлы линукс
Как удалить файлы и каталоги с помощью командной строки Linux
How to Remove Files and Directories Using Linux Command Line
Как удалить файлы
Чтобы удалить (или удалить) файл в Linux из командной строки, используйте команду rm (удалить) или unlink команду.
Команда unlink позволяет удалить только один файл, при этом rm вы можете удалить несколько файлов одновременно.
Будьте особенно осторожны при удалении файлов или каталогов, потому что, как только файл удален, он не может быть легко восстановлен.
Чтобы удалить один файл, используйте команду rm or, unlink а затем имя файла:
Чтобы удалить несколько файлов одновременно, используйте rm команду, за которой следуют имена файлов, разделенные пробелом.
При использовании обычных расширений сначала перечислите файлы с помощью ls команды, чтобы вы могли видеть, какие файлы будут удалены перед выполнением rm команды.
Как удалить каталоги (папки)
rmdir утилита командной строки для удаления пустых каталогов, в то время как rm вы можете рекурсивно удалять директории и их содержимое.
Если каталог или файл в каталоге защищен от записи, вам будет предложено подтвердить удаление.
Как и в случае с файлами, вы также можете использовать подстановочный знак ( * ) и обычные расширения для соответствия нескольким каталогам.
Вывод
Как удалить файл в Linux
Если файл защищен от записи, вам будет предложено подтвердить ее, как показано ниже. Чтобы удалить файл введите y и нажмите Enter. В противном случае, если файл не защищен от записи, он будет удален без запроса.
Когда вы используете rm с wildcards ( *) и регулярными расширениями, рекомендуется перечислить файлы с помощью команды ls, чтобы вы могли видеть, какие файлы будут удалены перед запуском команды rm.
Удаляем файлы в Linux: практика
В ОС Linux для удаления файлов есть стандартная утилита rm. Как это принято со стандартными утилитами, в названии rm есть определённая идея. В нашем случае речь идёт о сокращении от английского слова Remove — удалять.
Итак, чтобы выполнить удаления одного файла, используем команду rm, указывая за ней имя нашего файла:
Если наш файл находится не в текущем рабочем каталоге, нужно указать путь к его местоположению:
Бывает, что файл защищён от записи. Тогда нам предложат подтвердить команду. Чтобы удалить файл в такой ситуации, просто вводим y и нажимаем Enter.
rm: remove write-protected regular empty file ‘filename’?
Если мы хотим удалить сразу несколько файлов в Linux, то это тоже не проблема: используем команду rm, за которой прописываем имена наших файлов через пробел:
rm filename1 filename2 filename3
Способ 1: Терминал
Работа с файлами в «Терминале» кардинально отличается от работы в файловом менеджере. Как минимум, в нем нет визуализации — все данные вы будете вводить и получать в окне, имеющем вид традиционной для Windows командной строки. Однако именно через этот элемент системы удастся отследить все ошибки, возникающие при выполнении той или иной операции.
Подготовительные мероприятия
Используя «Терминал» для создания или удаления файлов в системе, вам необходимо предварительно указать в нем директорию, в которой будут выполняться все последующие операции. В противном случае все созданные файлы будут находиться в корневом каталоге («/»).
Указать директорию в «Терминале» можно двумя способами: при помощи файлового менеджера и при помощи команды cd. Разберем каждый в отдельности.
Файловый менеджер
Итак, допустим, вы хотите создать или, наоборот, удалить файл из папки «Документы», что находиться по пути:
Чтобы открыть эту директорию в «Терминале», вам необходимо сначала открыть ее в файловом менеджере, а затем, нажав ПКМ, выбрать в контекстном меню пункт «Открыть в терминале».
По итогу откроется «Терминал», в котором будет указана выбранная директория.
Команда cd
Если вы не хотите пользоваться предыдущим способом или не имеете доступа к файловому менеджеру, вы можете указать директорию, не выходя из «Терминала». Для этого используют команду cd. Все что нужно сделать, это написать данную команду, указав затем путь к директории. Разберем это так же на примере папки «Документы». Впишите команду:
Вот пример выполняемой операции:
Как видно, необходимо изначально ввести путь к директории (1), а после нажатия клавиши Enter в «Терминале» должна отобразиться выбранная директория (2).
После того как вы узнали, как выбрать директорию, в которой будут проводиться работы с файлами, можно переходить непосредственно к самому процессу создания и удаления файлов.
Создание файлов через «Терминал»
Для начала откройте сам «Терминал», нажав сочетание клавиш CTRL + ALT + T. Теперь можно начинать создание файлов. Для этого есть возможность воспользоваться шестью разными способами, которые будут продемонстрированы ниже.
Утилита touch
Предназначение команды touch в Linux — изменение временной метки (время изменения и время использования). Но если введенного имени файла утилита не найдет, она автоматически создаст новый.
Итак, для создания файла вам необходимо в командной строке прописать:
touch «Имя_Файла» (обязательно в кавычках).
Вот пример такой команды:
Функция перенаправления процесса
Этот способ можно считать самым простым. Чтобы создать файл с его помощью, необходимо всего лишь указать знак перенаправления и ввести имя создаваемого файла:
> «Имя_Файла» (обязательно в кавычках)
Команды echo и функция перенаправления процесса
Этот способ практически ничем не отличается от предыдущего, только в этом случае необходимо перед знаком перенаправления вписать команду echo:
echo > «Имя_Файла» (обязательно в кавычках)
Утилита cp
Как и в случае с утилитой touch, главным предназначением команды cp не является создание новых файлов. Она необходима для копирования. Однако задав переменную «null», вы создадите новый документ:
cp /dev/null «Имя_Файла» (обязательно без кавычек)
Команда cat и функции перенаправления процесса
cat — это команда, служащая для связки и просмотра файлов и их содержимого, но стоит ее использовать вместе с перенаправлением процесса, как она сразу создаст новый файл:
cat /dev/null > «Имя_Файла» (обязательно в кавычках)
Текстовый редактор vim
Именно у утилиты vim главное предназначение — это работа с файлами. Однако у нее нет интерфейса — все действия выполняются через «Терминал».
К сожалению, vim предустановлена не на всех дистрибутивах, например, в Ubuntu 16.04.2 LTS ее нет. Но это не беда, ее запросто можно скачать из репозитория и установить на свой компьютер, не покидая «Терминал».
Примечание: если текстовый консольный редактор vim у вас уже установлен, то пропустите этот шаг и переходите сразу к созданию файла с его помощью
Для установки введите команду:
sudo apt install vim
После нажатия Enter потребуется ввести пароль. Вводите его и ждите окончания загрузки и установки. В процессе у вас могут потребовать подтверждение выполнения команды — введите букву «Д» и нажмите Enter.
О завершении установки программы можно судить по появившемуся логину и имени компьютера.
После установки текстового редактора vim можно приступить к созданию файлов в системе. Для этого нужно воспользоваться командой:
Выше были перечислены шесть способов, как можно создавать файлы в дистрибутивах Linux. Конечно, это не все возможные, а лишь часть, но с их помощью обязательно получится выполнить поставленную задачу.
Удаление файлов через «Терминал»
Удаление файлов в «Терминале» практически ничем не отличается от их создания. Главное — знать все необходимые команды.
Важно: удаляя файлы из системы через «Терминал», вы их стираете безвозвратно, то есть, в «Корзине» их отыскать потом не получится.
Команда rm
Именно команда rm служит в Linux для удаления файлов. Вам всего-навсего нужно указать директорию, ввести команду и вписать имя файла, который нужно удалить:
rm «Имя_Файла» (обязательно в кавычках)
Как можно заметить, после выполнения данной команды в файловом менеджере пропал файл «Новый документ».
Если вы хотите очистить целую директорию от ненужных файлов, то будет довольно долго вписывать их наименования раз за разом. Проще воспользоваться специальной командой, которая вмиг безвозвратно удалит все файлы:
Выполнив эту команду, вы можете видеть как в файловом менеджере удалились все ранее созданные файлы.
Способ 2: Файловый менеджер
Файловый менеджер любой операционной системы (ОС) хорош тем, что он дает возможность наглядно отследить все проводимые манипуляции, в отличие от «Терминала» с его командной строкой. Однако есть и минусы. Один из них: нет возможности детально проследить за процессами, которые выполняются при той или иной операции.
В любом случае пользователям, которые недавно установили дистрибутив Linux себе на компьютер, он отлично подойдет, так как сходство с Windows, как говорится, налицо.
Примечание: в статье в качестве примера будет использован файловый менеджер Nautilus, который является стандартным для большинства дистрибутивов Linux. Однако инструкция для других менеджеров схожа, могут отличаться лишь названия пунктов и расположение элементов интерфейса.
Создаем файл в файловом менеджере
Необходимо делать следующее, чтобы создать файл:
После этого в директории появится пустой файл, которому остается лишь задать имя.
Как удалить файл в Linux с помощью настольного файлового менеджера
Любой, кто работает с Windows или macOS, найдет среду рабочего стола Linux очень знакомой. Обозреватель файлов в большинстве сред рабочего стола Linux, таких как Ubuntu GNOME или Mint’s Cinnamon, действительно облегчает управление файлами в Linux для среднего пользователя, который может быть не знаком с интерфейсами командной строки..
Как только вы попали в проводник и нашли файл или файлы, которые хотите удалить, у вас есть два пути. Во-первых, вы можете переместить его в корзину, которая представляет собой специальный контейнер в файловой системе, в котором хранятся файлы и каталоги, которые вам больше не нужны.
Вы можете сделать это, щелкнув левой кнопкой мыши по файлу и нажав клавишу «Удалить» на клавиатуре. Это работает для групп файлов, которые вы выбрали их с помощью поля выбора или CTRL / SHIFT + щелчок левой кнопкой мыши. Кроме того, вы можете щелкнуть правой кнопкой мыши файл или один из выбранных вами файлов и выбрать «Переместить в корзину» из контекстного меню..
Как только файлы окажутся в мусорном контейнере, вам нужно будет очистить его вручную, чтобы окончательно удалить файлы внутри него. Вы можете сделать это, щелкнув правой кнопкой мыши «Корзина» на боковой панели навигации большинства файлового обозревателя и выбрав «Очистить корзину».
Двойной щелчок по нему приведет вас внутрь контейнера, где у вас будет возможность восстановить файлы в их исходных местах или навсегда удалить их все.
(Изображение предоставлено: Будущее)
В некоторых средах рабочего стола, таких как Mint’s Cinnamon, также есть возможность постоянного удаления файла прямо из контекстного меню, полностью обходя контейнер Trash..
Это следует делать только в том случае, если вы уверены, что хотите избавиться от файла, поскольку, хотя вы можете восстановить «навсегда» удаленный файл с жесткого диска, это не является гарантией, и процесс может быть очень сложным и отнимает много времени — и, возможно, дорого.
(Изображение предоставлено: Будущее)
Всегда безопаснее переместить что-либо в корзину, чем удалить его навсегда. Оставив его в корзине, вы сохраняете возможность передумать, если обнаружите, что вам нужен файл.
В большинстве случаев, когда вы приступите к очистке контейнера, вы уже поняли, что вам что-то нужно, и восстановили файл. Если вы не успели очистить корзину, скорее всего, она вам действительно не нужна.
(Изображение предоставлено: Будущее)
Удаляем папки и каталоги в Linux
Если хотим удалить непустой каталог и все файлы, которые в нём находятся, поступаем следующим образом:
Опять же, в случае наличия защиты от записи, система Linux спросит пользователя, стоит ли выполнять удаление. Если мы хотим удалить файлы и непустые каталоги без лишних вопросов, делаем так:
Когда хотим удалить сразу несколько каталогов, мы применяем команду rm, прописывая за ней имена каталогов через пробел:
Кстати, здесь мы тоже можем использовать подстановочный знак ( *) и регулярные выражения, обеспечивающие соответствие нескольким каталогам.
Удаление через rm
Для удаления файла, необходимо ввести команду rm и название документа.
Данная команда удалит dokument, с некоторыми особенностями:
Удалим файл “newfile” из каталога /usr/games.
Удалить все файлы в папке.
Ключ “-f” даст возможность не выводить запрос на подтверждение операции. Однако, команда выше очистит только все файлы из каталога “games” не трогая директории.
Если нужно очистить систему от всех файлов, которые заканчиваются «.doc», следует приписать в самом конце команды символ «*», без пробела.
Утилита Remove (rm) требует особой осторожности в работе. При халатном отношении к делу пользователь может навсегда стереть важные файлы.
Если пользователю не нужен запрос на подтверждение, и он на 100% уверен в правильности своих дальнейших действий, можно вписать в команду опцию с противоположным воздействием на процесс (-f).
Удаление через find
Для реализации задуманного можно воспользоваться еще одной альтернативной программой find. Кроме того, она пригодится даже там, где rm не осилит поставленную задачу. Её синтаксис выглядит следующим образом:
$ find папка критерий действие
К примеру, пользователю нужно очистить текущий каталог от всех файлов с названием «file». Их можно найти и уничтожить следующим способом:
Чтобы удалить устаревшие логи (то есть, файлы старше конкретного срока), используйте специальную команду в виде:
Исходя из заданной команды, можно понять, что Линукс удалит из текущего каталога все файлы, «возраст» которых превышает 5 дней. Вот видите, как легко управлять устройством посредством терминала!
Иногда в Linux наличествуют файлы, восстановление которых не имеет ни малейшей актуальности посте чистки ПК. То есть, от них нужно избавиться раз и навсегда. Если использовать ранее упомянутую программу rm, то ничего не получится, поскольку она удаляет лишь ссылку на файл, сохраняя при этом его содержимое в памяти устройства. Он все еще будет поддаваться восстановлению, ровно до того момента, пока Линукс не перезапишет его иной информацией.
Через shred
Чтобы очистить систему от документа без возможности его дальнейшего восстановления, нужно использовать специальную команду под названием «shred». Как только срабатывает команда, файл удаляется, и система неоднократно перезаписывает его место на диске. Как это выглядит на практике:
Синтаксис и опции команды rm
Команда «rm» имеет множество опций, что позволяет очень тонко управлять процессом удаления файлов. Вы можете изучить все доступные опции если введете в терминал Linux команду «man rm». Здесь же мы будем рассматривать самые простые и часто используемые опции.
Синтаксис команды «rm» выглядит следующим образом:
Разберем основные опции команды rm:
Теперь разберем некоторые опции, которые часто используются при удалении файлов в Linux через терминал. Например, очень часто возникает необходимость удалить папку вместе с всем содержимым. Для этого нужно использовать опцию «-r», которая включает рекурсивный обход папок. Например, для того чтобы удалить папку «folder1» и все ее содержимое нужно выполнить:
Если права доступа к файлу разрешают только чтение, то в терминале Linux появится запрос подтверждения, и чтобы продолжить вам нужно будет ввести букву «y» (от англ. «yes»).
Чтобы избежать такой ситуации и удалять все файлы без предупреждения нужно использовать опцию «-f». Например:
Не редко возникает необходимость удалить папку вместе со всеми файлами и без запросов на подтверждение. В этом случае нужно комбинировать опции «-r» и «-f». В результате команда выглядит вот так:
Если вы, наоборот, хотите каждый раз получать запрос подтверждения, то команду «rm» нужно выполнять с опцией «-i». Например, для того чтобы удалить все файлы в текущем каталоге с запросом подтверждения нужно выполнить:
Также бывает полезной опция «-v». При ее использовании в терминале будет появляться подробная информация о выполняемых действиях. Например, для того чтобы удалить все файлы в текущем каталоге и вывести информацию в терминал нужно выполнить:
Также вывод информации можно перенаправить в файл. Для этого после команды нужно использовать оператор перенаправления вывода (>) и указать название файла. Например:
Естественно все эти опции можно комбинировать, в зависимости от ваших задач.
Как удалить каталоги (папки)
Если каталог или файл в каталоге защищены от записи, вам будет предложено подтвердить удаление.
То же, что и в файлах, вы также можете использовать подстановочный знак ( *) и регулярные выражения для соответствия нескольким каталогам.
Выводы
Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!
Основы Linux от основателя Gentoo. Часть 1 (3/4): Ссылки, а также удаление файлов и директорий
Третий отрывок из перевода первой части руководства. Предыдущие: первый, второй.
В этом отрывке рассмотрены жесткие и символические ссылки, а также разобрано удаление файлов и директорий с помощью команд rm и rmdir.
Создание ссылок и удаление файлов
Жесткие ссылки
Мы уже упоминали термин «ссылка», когда рассказывали о взаимоотношениях между директориями (их именами) и инодами (индексным номерами, лежащими в основе файловой системы, которых мы не замечаем). Вообще в Linux существует два типа ссылок. Тип, о котором мы уже говорили ранее, называется «жесткие ссылки». Каждый инод может иметь произвольное число жестких ссылок. Когда уничтожается последняя жесткая ссылка, и не одна программа не держит файл открытым, то Linux автоматически удаляет его. Новые жесткие ссылки можно создать воспользовавшись командой ln:
Как видите, жесткие ссылки работают на уровне инодов, для указания конкретного файла. В Linux системах, для жестких ссылок есть несколько ограничений. В частности, можно создавать жесткие ссылки только на файлы, не на директории. Да-да, именно так; хотя «.» и «..» являются созданными системой жесткими ссылками на директории, вам (даже от имени пользователя «root») не разрешается создавать любые свои собственные. Второе ограничение жестких ссылок состоит в том, что нельзя связать ими несколько файловых систем. Это значит, что у вас не получится создать жесткую ссылку с /usr/bin/bash на /bin/bash и если ваши директории / и /usr находятся в разных файловых системах (разделах — прим. пер.).
Символьные ссылки
В практике, символьные ссылки (или символические, иногда «симлинки» — от англ.) используются гораздо чаще, чем жесткие. Симлинки — это файлы особого типа, которые ссылаются на другие файлы по имени, а не прямо по номеру инода. Они не спасают файлы от удаления; если файл, на который указывает ссылка, исчезает, то симлинк перестает работать, ломается.
Симлинки детально
Символические ссылки в целом более гибкие, чем жесткие. Вы можете создавать символьные ссылки на любой объект файловой системы, включая директории. И благодаря тому, что их реализация основана на путях (не инодах), можно совершенно свободно создать символьную ссылку указывающую на объект другой файловой системы. Однако, сей факт также делает их сложными в понимании.
Предположим, что мы хотим создать ссылку в /tmp, которая указывает на /usr/local/bin. Нам следует набрать:
Либо, альтернативный вариант:
Как вы видите, обе символические ссылки указывают на одну директорию. Однако, если наша вторая символьная ссылка когда-нибудь будет перемещена в другую директорию, то она может «поломаться» из-за относительности пути:
$ mkdir mynewdir
$ mv bin2 mynewdir
$ cd mynewdir
$ cd bin2
bash: cd: bin2: No such file or directory
Потому, что директории /tmp/usr/local/bin не существует, мы больше не можем переместиться в bin2; другими словами, bin2 сейчас сломана.
По этой причине, избегать создания ссылок с относительной информацией о пути, иногда будет хорошей идеей. Тем не менее, существует множество случаев, где относительные символические ссылки крайне удобны. Рассмотрим пример в котором мы хотим создать альтернативное имя для программы в /usr/bin:
От имени суперпользователя мы хотим короткий синоним для keychain, такой, как kc. В этом примере у нас есть root-доступ, о чем свидетельствует измененное на «#» приветствие bash. Нам нужен root-доступ потому, что обычные пользователи не имеют прав создавать файлы в /usr/bin. От имени суперпользователя мы можем создать альтернативное имя для keychain следующим образом:
В этом примере мы создали символьную ссылку под названием kc, которая указывает на файл /usr/bin/keychain.
Пока это решение будет работать, но создаст проблему, если мы решим переместить оба файла, /usr/bin/keychain и /usr/bin/kc в /usr/local/bin:
Поскольку мы использовали абсолютный путь для символической ссылки kc, то она все еще ссылается на /usr/bin/keychain, которого не существует с тех пор как мы переместили /usr/bin/keychain в /usr/local/bin.
Это привело к тому, что симлинк kc сейчас не работает. Как относительные, так и абсолютные пути в символьных ссылках имеют свои достоинства, и, в зависимости от вашей задачи, нужно использовать соответствующий тип пути. Часто, и относительный, и абсолютный путь, будут работать одинаково хорошо. Пример ниже будет работать, даже после перемещения обоих файлов:
Теперь, мы можем запустить программу keychain набрав /usr/local/bin/kc. /usr/local/bin/kc указывает на программу keychain в той же директории, где находится kc.
Итак, мы знаем как использовать cp, mv и ln, настало время узнать о том, как можно удалять объекты из файловой системы. Обычно это делается с помощью команды rm. Чтобы удалить файлы, просто укажите их в командной строке:
Если вы все еще учитесь пользоваться командой rm, то может быть полезным добавить при помощи вашего любимого текстового редактора следующую строку в ваш файл
rmdir
Для удаления директорий у вас имеется два варианта. Вы можете удалить все объекты внутри директории и затем воспользоваться rmdir для удаления самой директории:
$ mkdir mydir
$ touch mydir/file1
$ rm mydir/file1
$ rmdir mydir
Самый лучший способ удалить директорию состоит в использовании опций «рекурсивного принуждения» (recursive force) команды rm, чтобы приказать ей удалять указанную директорию, также как и объекты содержащиеся внутри:
Об авторах
Daniel Robbins
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Aron Griffis
Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».