Очистить содержимое директории linux

Linux удалить все содержимое папки

Как удалить всё содержимое в папке, но саму папку оставить?

Как удалить всё файлы, папки, ссылки в папке, но саму папку оставить? У меня есть временная папка temp и в неё я кладу файлы, а после работы с ними я хотел бы удалить всё содержимое. У меня есть файлы типо .zshrc temp.txt и так же папки с дочерними подпапками и скрытыми каталогами типо .config и так же есть обычные файлы типо info.txt temp.php и т.п. А также есть файл в имене которых есть две точки типо ..12

Как очистить всё это из папки temp ?? Я уже пробовал команду sudo rm -rf /home/temp/.* /home/temp/* /home/temp/*.* Но она не всегда срабатывает. Eсли в папке temp будет находится все типы перечисленных файлов тогда да, она сработает, но если же например только папка и всё, а остальных типов файлов не будет, то выдает это Хотя папка с подпапками существует даже после выполнения команды. Если же отдельно вручную удалять по каждой папке и по каждому файлу, тогда всё нормально удаляется. Что я делаю не так?

Как удалить файлы и каталоги в терминале Linux?

Команды rm и rmdir удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они похожи на команды del и deltree в Windows и DOS. Эти команды очень мощные и имеют довольно много опций. Важно отметить, что файлы и каталоги, удаленные с помощью rm и rmdir , не перемещаются в корзину. Они сразу же удаляются с вашего компьютера. Если вы случайно удалили файлы с помощью этих команд, вы сможете восстановить их только из резервной копии.

Как удалить файлы с помощью rm

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

Подстановочные знаки могут использоваться для выбора групп файлов, которые будут удалены. Знак * представляет несколько символов, а символ ? представляет один символ. Эта команда удалит все файлы изображений png в текущем рабочем каталоге. Эта команда удалит все файлы с одним символьным расширением. Например, это удалит File.1 и File.2, но не File.12. Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить с помощью y или n и нажать «Enter». Чтобы снизить риск использования rm с подстановочными знаками, используйте параметр -i (интерактивный). Для этого необходимо подтвердить удаление каждого файла. Опция -f (сила) противоположна интерактивной. Он не запрашивает подтверждение, даже если файлы защищены от записи.

Читайте также:  Linux listing running processes

Как удалить каталоги с помощью rm

Чтобы удалить пустой каталог, используйте опцию -d (directory). Вы можете использовать подстановочные знаки (* и ?) В именах каталогов так же, как и в именах файлов.

Предоставление более одного имени каталога удаляет все указанные пустые каталоги. Чтобы удалить не пустые каталоги, используйте параметр -r (рекурсивный). Чтобы было ясно, это удаляет каталоги и все файлы и подкаталоги, содержащиеся в них. Если каталог или файл защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить не пустые каталоги и подавить эти приглашения, используйте вместе параметры -r (рекурсивный) и -f (принудительный). Здесь требуется осторожность. Ошибка в команде rm -rf может привести к потере данных или неисправности системы. Это опасно, и осторожность — лучшая политика. Чтобы получить представление о структуре каталогов и файлах, которые будут удалены командой rm -rf, используйте команду tree . Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux. Выполнение команды tree дает простую для понимания диаграмму структуры каталогов и файлов под каталогом, из которого она запускается.

Вы также можете указать путь к команде tree чтобы он запускал дерево из другого каталога в файловой системе. Команда rm также имеет параметры —one-file-system , —no-preserve-root , —preserve-root , но они рекомендуются только для опытных пользователей. Если вы что-то не так, вы можете случайно удалить все ваши системные файлы.

Как удалить каталоги с помощью rmdir

Есть еще одна команда rmdir , которую вы можете использовать для удаления каталогов. Разница между rm и rmdir том, что rmdir может удалять только пустые каталоги. Он никогда не удалит файлы. Самый простой случай — удаление одного пустого каталога. Как и в случае с rm , вы можете передать несколько имен каталогов в rmdir или rmdir путь к каталогу. Удалите один каталог в текущем каталоге, передав его имя в rmdir : Удалите несколько каталогов, передав список имен в rmdir : Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:

Если вы попытаетесь удалить не пустую папку, rmdir выдаст вам сообщение об ошибке. В следующем примере rmdir успешно и без вывода сообщений удаляет каталог clients но отказывается удалять каталог projects поскольку он содержит файлы. Каталог projects остается точно таким, каким он был, а файлы в нем нетронутыми. Когда rmdir выдает ошибку «Directory not empty», он прекращает обработку каталогов, переданных ему в командной строке. Если вы попросили удалить четыре каталога, а в первом содержались файлы, rmdir выдаст вам сообщение об ошибке и больше ничего не сделает. Вы можете заставить его игнорировать эти ошибки с —ignore-fail-on-non-empty чтобы обрабатывать другие каталоги. В следующем примере две папки были переданы в rmdir , это work/reports и work/quotes. Параметр —ignore-fail-on-non-empty включен в команду. В папке work/reports находятся файлы, поэтому rmdir не может удалить ее. Опция —ignore-fail-on-non-empty заставляет rmdir игнорировать ошибку и переходить к следующей папке, которую он должен обработать, это work/quotes. Это пустая папка, и rmdir удаляет ее. Эта команда использовалась. Вы можете использовать опцию -p (parent), чтобы удалить каталог, а также удалить его родительские каталоги. Этот прием работает, потому что rmdir начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пустым, поэтому он может быть удален rmdir, и процесс повторяет шаг назад по пути, предоставленному rmdir.

Читайте также:  Создать тему для linux

В следующем примере команда, переданная в rmdir: Каталоги invoices и work удаляются по запросу. Используете ли вы Bash или любую другую оболочку? Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают иметь рабочий процесс, который вращается вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе в автономной системе, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей. Но какой бы тип рабочего процесса вы ни предпочли, эти команды очень хорошо подходят для включения в сценарии оболочки. Если сценарий запускается заданием cron , это может помочь автоматизировать рутинные служебные задачи, такие как очистка нежелательных файлов журнала. Если вы исследуете этот вариант использования, помните о силе этих команд, тщательно проверяйте все и всегда сохраняйте последнюю резервную копию.

очистить директорию

какой командой очистить директорию, не удаляя саму директорию? уточню- cd директория && sudo rm -rf rm -rf /path/to/dir — удалит директорию вместе с содержимым
rm -rf /path/to/dir/* — удалит только содержимое . без скрытых файлов и каталогов

Точно.
Тогда так:
rm -rf /path/to/dir/* ; rm -rf /path/to/dir/.[^.]* Тогда уж можно свести все в одну команду ) Да. А еще можно так: shopt -s dotglob && rm -rf /path/to/dir/*
🙂

О, а я как лох пишу .[a-zA-Z0-9]* Меня несколько оправдывает то, что нужно мне это пару раз в год. Это не удалит файлы с двумя точками (..file). Ну и незачем два раза вызывать: rm -rf /path/to/dir/* /path/to/dir/.[^.]* . * find /path/to/dir/ -mindepth 1 -exec rm -rf <> \; find /path/to/dir/ -mindepth 1 -delete
Тогда уж так. Источник

Источник

Как удалить все файлы в папке Linux

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

Из данной статьи вы узнаете, как удалить все файлы в папке Ubuntu, в том числе скрытые и не скрытые. Заодно мы разберем важные нюансы данной процедуры, упомянув несколько способов чистки.

Читайте также:  Bios update linux dell

Как удалить все файлы в папке Linux

Многие действия в данной операционной системе удобно выполнять с помощью команд в терминале. Чистка содержимого папок тоже относится к их числу. Для начала предлагаем посмотреть полный список файлов в конкретном каталоге, на примере ~/Downloads:

find ~/Downloads -maxdepth 1 -type f

WDS53SE3p2fPeNb3+f64hJQU5y2WzAAAAAElFTkSuQmCC

Файлы, название которых начинается с точки, являются скрытыми. Остальные – не скрытые. Простая чистка не скрытых файлов внутри директории осуществляется такой командой:

KzQAAAABJRU5ErkJggg==

Чтобы стереть все файлы, даже скрытые, выполните эту команду:

p7ceCC3TODQAAAABJRU5ErkJggg==

Для просмотра всех файлов и каталогов в выбранном местоположении, в том числе и скрытых, подойдет команда find без параметров. Например:

Pxc+PyGgnnu4AAAAAElFTkSuQmCC

Полная чистка директории со всеми вложенными файлами и папками (даже скрытыми) осуществляется другой командой:

Похожие записи

Оцените статью

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

6 комментариев к “Как удалить все файлы в папке Linux”

Спасибо за статью. А как можно настроить, что при запуске команды «rm -rf » данные не удалялись напрямую, а складывались во временную папку или в корзину, как сделано в Windows? Чтобы я потом сам удалял из корзины, после того, как убедился что ничего не поломалось после удаления. Ответить

Осознаю, не панацея. Но если устроит, то создайте такой скрипт: #!/usr/bin/bash TRASH=»/home/$USER/.trash/» if [ ! -d $TRASH ] ; then
# echo $TRASH
mkdir -p $TRASH
fi for file in $*
do
if [ -f $file ] ; then
# echo $file
mv $file $TRASH
fi
done Назовите его rm и поместите в директорий, в котором находятся Ваши личные запускаемые файлы и скрипты. У меня Debian/MATE. Такой директорий находится в домашнем директории и называется bin. Кроме того, путь к этому поддиректорию у меня задаётся в файле .bashrc. И этот путь размещён раньше пути к директорию /usr/bin/, где находится сстемная утилита rm. Таким образом при выполнении команды rm будет «срабатывать» Ваш скрип, а не системная утилита. И да! После создания скрипта не забудьте сделать его исполняемым — chmod +x. В скрипте я оставил пару команд echo. Это на тот случай, если Вам захочется с ним поиграться. Просто закомментируйте команды mkdir и mv и удалите комментарий у рядом стоящих команд echo. Ответить

Можно просто использовать gio trash: Usage:
gio trash [OPTION…] [LOCATION…] Move/Restore files or directories to the trash. Options:
-f, —force Ignore nonexistent files, never prompt
—empty Empty the trash
—list List files in the trash with their original locations
—restore Restore a file from trash to its original location (possibly recreating the directory) Note: for —restore switch, if the original location of the trashed file
already exists, it will not be overwritten unless —force is set. Ответить

Не буду даже пробовать такое. С самого начала следовало бы написать, насколько это безопасно и почему (и какие) файлы должны быть удалены из системы. Ответить

Источник

Оцените статью
Adblock
detector