- очистить директорию
- Как удалить все файлы из каталога?
- Удалить только файлы в каталоге на linux не каталоги
- 9 ответов
- Как удалить все файлы и подкаталоги в каталоге БЕЗ удаления каталога в bash?
- 9 ответов
- Как удалить все файлы в каталоге, кроме одного
- Удалить файлы из каталога с помощью rm
- Удалить файлы из каталога с помощью find
- Удалите файлы из каталога с помощью переменной GLOBIGNORE
очистить директорию
какой командой очистить директорию, не удаляя саму директорию?
уточню- 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 смотрит на 1-й байт, чтобы выяснить, с каким файлом он имеет дело.
Чтобы удалить все в каталоге, используйте:
Вы можете использовать -r опцию, например:
rm -r /path/to/directory/*
также удалить любые подкаталоги (вместе со всем их содержимым) внутри каталога, содержимое которого вы удаляете. В противном случае будет отображена ошибка, сообщающая, что каталог не удаляется.
Чтобы удалить папку со всем ее содержимым ( включая все внутренние папки ):
Чтобы удалить все содержимое папки ( включая все внутренние папки ), но не саму папку:
если вы хотите убедиться, что скрытые файлы / каталоги также удалены.
Чтобы удалить все «файлы» из папки ( не удаляя внутренние папки ):
Предупреждение : если на вашем пути есть пробелы, всегда используйте кавычки.
эквивалентно 2 отдельным rm -rf вызовам:
Чтобы избежать этой проблемы, вы можете использовать ‘ одинарные кавычки ‘ ( не расширяет переменные оболочки) или » двойные кавычки » ( расширяет переменные оболочки):
- rm — означает « удалить »
- -f — означает « сила », которая полезна, когда вы не хотите, чтобы вас спрашивали / подсказывали, например, если вы хотите удалить архив.
- -r — означает « рекурсивный », что означает, что вы хотите рекурсивно пройтись по каждой папке и удалить все.
Источник
Удалить только файлы в каталоге на linux не каталоги
какую команду delete можно запустить, чтобы удалить только файлы в данном каталоге
- не директории
- не подкаталогов
- не файлы в этих поддиректориях.
некоторые файлы не имеют расширения, так rm *.* не будет работать.
в этой папке тысячи файлов.
9 ответов
можно использовать find С -type f только для файлов и -maxdepth 1 так find не будет искать файлы в подкаталогах /path/to/directory . rm -i предложит вам при каждом удалении, чтобы вы могли подтвердить или отклонить удаление. Если вы не заботитесь о подтверждении каждого удаления, измените его на rm -fv ( -f на силу удалить). The -v флаг делает это так, что с каждым удалением печатается сообщение о том, какой файл был просто удаленный.
это должно соответствовать критериям:
не директории
Не подкаталоги
Не файлы в этих подкаталогах.
но это не будет запрашивать подтверждение или выводить то, что он только что удалил. Поэтому лучше всего запустить его без действия-delete и проверить, что это правильные файлы.
так как это высоко на Google search, самый простой ответ:
где $directoryPath-это каталог, который вы хотите очистить. Кредиты должны идти на cbm3384 (который по какой-то причине получил отрицательные голоса за этот ответ, почему?)
если вы не хотите подтверждать:
если вы не верите, попробуйте man rm или
выше создает структуру каталогов, которая имеет helloX.файл txt в каждой папке (х уровень каталогов.) rm 1/2/* удалить hello2.txt и оставляет другую структуру неповрежденной.
и rm */*/* удаляет только hello2.txt . Это единственное, что соответствует шаблону.
просто пример файла Makefile, который очищает CakePHP tmp-directory и оставляет структуру каталогов нетронутой:
минус перед rm означает «не стой над ошибками» (каталог неснятую возвращает ошибку). Если вы хотите сохранить какой-то уровень, просто удалите эту строку, например, вторая строка rm удаляет журналы.
Дайте мне знать, если у вас есть система, которая делает что-то еще (БСД?).
EDIT: я тестировал это на ubuntu 12.04, osx lion и sourceforge.net Шелл. Все ведут себя так, как описано выше.
rm не удалять каталоги по умолчанию. Итак, в вашем примере,предполагая, что вы находитесь в Родительском каталоге и все файлы, все что вам нужно это:
Источник
Как удалить все файлы и подкаталоги в каталоге БЕЗ удаления каталога в bash?
Вероятно, вы ищете gpgdir из пакета signing-party (стандартный репозиторий ubuntu), который может рекурсивно шифровать контуры.
Страница руководства находится здесь: http://manpages.ubuntu.com /manpages/saucy/man1/gpgdir.1.html
9 ответов
Единственная причина, по которой rm -r ./* работает не всегда, состоит в том, что вы можете иметь скрытые файлы и / или папку, которые не соответствуют *.
С этой целью bash предоставляют возможность чтобы * соответствовал всем, даже скрытым объектам:
Может быть полезно сбросить dotglob в состояние по умолчанию (unset), если вы продолжаете использовать оболочку, в которой вы выполнили над командами:
Открыть терминал (Ctrl + Alt + T) ant type this:
Это будет соответствовать всем файлам и каталогам внутри somedir и его (grand-) детей, включая «скрытые» точечные файлы но исключая somedir из-за -mindepth 1, затем -delete их.
Используйте параметр xdev для удаления файлов только на границе устройства.
Чтобы удалить (в терминале) все файлы и подкаталоги, за исключением базового каталога с именем «dontdelete»:
Вы можете использовать find с флагом -delete:
find dontDeleteMe/* -delete
Важно /*, поскольку он сообщает find искать только INSIDE папка с именем «dontDeleteMe».
Также убедитесь, что флаг -delete находится в конце команды find.
Удалить все файлы, начиная с. в «каталоге» и во всех других файлах.
Хотя это не одобрено Neftas, это решение небезопасно!
Более безопасное решение:
Я не уверен, почему это так сложно, помогите мне, если я ошибаюсь
Существует еще более простой ответ:
cd dontDeleteMe rm -rf *
Время основной лекции системы: обязательно обратите внимание на то, где вы находитесь, когда используете подметающие команды как это.
Я не могу сказать этого достаточно. Я должен был восстановить коробку, потому что кто-то не обращал внимания и набрал rm -rf *, когда находился в /.
* nix предполагает, что если вы являетесь пользователем root или если вы являетесь sudo-ing как root, вы знаете, что вы делаете. Поэтому убедитесь, что вы знаете, что делаете, прежде чем это сделать.
Альтернатива, которая гарантирует, что ваша команда «cd» работает до того, как вы выпустите «rm», будет использовать
Источник
Как удалить все файлы в каталоге, кроме одного
Иногда вам нужно удалить почти все файлы из каталога, но вы хотите сохранить один или несколько из них. Когда их много, идти по одному — утомительное занятие. Это не лучший вариант, есть способы значительно упростить работу в Linux и можно сразу избавиться от всех, что вам нужно.
Например, вы можете удалить только те, которые начинаются с определенного имени, или те, которые имеют определенное расширение, и так далее. Все что возможноФактически, в других случаях я уже показывал аналогичные уроки в LxA. Здесь вы можете шаг за шагом и простым способом следовать руководству, чтобы удалить все нужные файлы, кроме тех, которые вы хотите сохранить.
И самое лучшее то, что вам не нужно будет устанавливать какую-либо программу, это легко сделать с помощью таких команд, как rm и find. То есть программы, которые уже предустановлены в любом дистрибутиве Linux. И, конечно же, метод будет основан на поиске шаблонов и использовании этих совпадений для удаления только того, что вы хотите.
Ну чтобы там исключить несколько альтернатив, Кто они такие…
Удалить файлы из каталога с помощью rm
Ну, чтобы использовать команда rm Чтобы избавиться от того, что вы чувствуете, вы должны знать перед некоторыми способами выявления закономерностей:
- * (список шаблонов) — соответствует нулю или более вхождений указанных шаблонов
- ? (список шаблонов) — соответствует нулю или одному вхождению указанных шаблонов
- + (список шаблонов) — соответствует одному или нескольким экземплярам указанных шаблонов
- @ (список шаблонов) — соответствует одному из указанных шаблонов
- ! (список шаблонов) — соответствует чему угодно, кроме одного из заданных шаблонов
к активировать extglob Чтобы использовать их, вы должны сначала выполнить следующую команду:
глаз! Я не указываю это, но предполагается, что у вас есть разрешения на выполнение этих операций и что вы находитесь внутри этого каталога, когда выполняете команду rm. Будьте осторожны с этим, потому что, если вы запустите его по другому пути, вы можете удалить файлы, которые вам не нужны. То есть перед выполнением этих команд убедитесь, что вы вошли в нужный каталог с помощью cd.
Теперь вы можете использовать rm, чтобы удалить все, что захотите. Например, удалить все файлы из каталога, кроме тех, которые соответствуют имени «Lxa»:
Вы также можете указать два или более имен, которые вы не хотите удалять. Например, чтобы избежать удаления lxa и desdelinux:
Вы можете удалить все файлы, минус те, с расширением .mp3. Например:
В конце вы можете вернуться к отключить extglob:
Удалить файлы из каталога с помощью find
Другая альтернатива rm — используйте find, чтобы удалить то, что вам нравится. Вы можете использовать канал и xargs с rm или использовать параметр -delete для поиска. То есть общий синтаксис будет таким:
Например, представьте, что вы хотите удалить все файлы из каталога, кроме файлов с расширением .jpg, вы можете использовать одну из этих двух команд, поскольку обе они дают одинаковый результат:
Вместо этого, если вы хотите добавить дополнительный узор, ты тоже мог бы. Например, предположим, что вы не хотите удалять файлы .pdf или .odt из каталога:
Конечно, вы можете сделать то же самое с | и xargs, как в предыдущем примере. Кстати, мы использовали -не отрицать, но вы можете удалить это, чтобы сделать его положительным, то есть удалить совпадающие шаблоны, а не исключать их.
Удалите файлы из каталога с помощью переменной GLOBIGNORE
Наконец, есть Другая альтернатива чтобы найти и rm, и он использует переменную среды, чтобы указать файлы, которые вы хотите удалить или исключить. Например, представьте, что вы хотите удалить все файлы в каталоге с именем Downloads, сохранив файлы .pdf, .mp3 и .mp4. В этом случае вы можете сделать следующее:
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Любители Linux » GNU / Linux » Системное администрирование » Как удалить все файлы в каталоге, кроме одного
Источник