Вид. Необходимо иметь дело с сортировкой себя, но comm
может использоваться, чтобы сделать это, рассматривая каждую строку как элемент множества: -12
для пересечения, -13
для различия. (И -23
дает Вам зеркально отраженное различие, то есть, set2 - set1
вместо set1 - set2
.) Объединение sort -u
в этой установке.
Простой и прямой:
find -delete
Включает каталоги и скрытые файлы. По крайней мере, найдите гну, знает -delete
, Ваш find
может отличаться.
Лучший ответ: не делайте этого. Рекурсивно удалите сам каталог, затем воссоздайте его как пустой каталог. Это более надежно и легче для других людей понять то, что Вы пытаетесь сделать. Когда Вы воссоздаете каталог, он может иметь другого владельца, группу и полномочия. Если это важно, осторожны. Кроме того, если какие-либо запускающие программы будут иметь открытые дескрипторы файлов (дескрипторы) на каталоге затем, то Вы не захотите удалять его. Если ни один из тех особых случаев не применяется, то более просто удалить весь каталог.
rm -rf -- * .[!.]* ..?*
Каждый три шаблона расширяется до себя, если он ничему не соответствует, но это не проблема здесь, так как мы хотим соответствовать всему и rm -f
проигнорированные несуществующие аргументы.
Отметьте это .*
соответствовал бы ..
.
если Вы находитесь в каталоге:
cd .. && rm -rf dir && mkdir dir && cd dir
иначе:
rm -rf /path/to/dir && mkdir /path/to/dir
*(D)
( D
спецификатор шарика включает glob_dots
опция для этого шаблона).
– Gilles 'SO- stop being evil'
28.01.2011, 22:14
rm -rf {.,}*
(в отличие от удара, zsh не включает .
и ..
в {.,}*
, по крайней мере, на моей машине). спасибо
– sasha
11.01.2017, 13:50
Попробовать rm -rf *?*
. Это удалит нормальные и скрытые файлы.
*?*
не будет соответствовать “точечным” файлам/директорам (если Вы не включили dotglob
опция в ударе, GLOB_DOTS
опция в zsh или эквивалент для любой оболочки Вы используете).
– Chris Johnsen
29.01.2011, 05:21
Как насчет использования find
. Я думаю, что это - обычно хороший выбор, когда необходимо вырыть через подкаталоги.
find . -type f -exec rm {} \;
Принятие удара 4 +:
shopt -s dotglob
rm -rf -- *
##or:
rm -rf ./*
С включенным dotglob, *
расширяется до всех файлов и каталогов, даже те, которые начинают .
- но не расширяется до .
и ..
, таким образом, безопасно использовать с rm
.
find /path -delete -mindepth 1
. – orodbhen 09.06.2017, 14:29