Начиная с ядра 2.6.35, файл level
устарел и теперь заменен на control
.
Состояние auto
- это нормальное состояние, в котором ядру разрешено автоматически приостанавливать и автоматически возобновлять работу устройства. В ядрах до 2.6.32 можно также указать suspend
, что означает, что устройство должно оставаться приостановленным, а автоматическое возобновление запрещено. Этот параметр больше не поддерживается.
Более подробную информацию можно найти в текущей документации по управлению питанием для USB ядра.
rm -rf directory/{.*,/*}
Что говорит:
Удалить все файлы, начиная с. в «каталоге» и во всех других файлах.
Хотя, как любезно отмечено Нефтасом , это решение небезопасно!
Более безопасное решение:
rm -rf directory/!(.|..)
Единственная причина, по которой rm -r ./*
не всегда работает, заключается в том, что у вас могут быть скрытые файлы и / или папки, которые не соответствуют *
.
С этой целью bash
предоставляют возможность сделать *
сопоставленным со всем, даже со скрытыми объектами:
cd dont-delete-me
shopt -s dotglob
rm -r ./*
Может быть полезно сбросить dotglob
в состояние по умолчанию (не установлено) , если вы продолжаете использовать оболочку, в которой вы выполняли вышеуказанные команды:
shopt -u dotglob
Существует еще более простой ответ:
cd dontDeleteMe
rm -rf *
Я не могу сказать этого достаточно. Мне пришлось восстановить коробку, потому что кто-то не обращал внимания и набрал rm -rf *
в /.
* nix предполагает, что, если вы являетесь пользователем root или вы являетесь пользователем root, вы знаете, что делаете. Поэтому убедитесь, что вы знаете, что делаете, прежде чем сделать это.
Альтернативой, которая гарантирует, что ваша команда 'cd' работает до того, как вы выпустите 'rm', является использование
cd dontDeleteMe && rm -rf *
cd dontDeleteMe && rm -rf *
– g00glen00b
10.02.2020, 13:08
&&
оператор doesn' t просто объединяют команды в цепочку вместе; это требует, чтобы каждая команда была успешна, прежде чем следующий будет выполняться. Если cd
команда перестала работать по какой-либо причине (каталог doesn' t существуют, полномочия, и т.д.), тогда rm
команда won' t быть выполненным. I' d вызов, что более безопасный.
– Jeff Hoye
10.02.2020, 13:09
find /dontDeleteMe/ -xdev -depth -mindepth 1 -exec rm -Rf {} \;
Используйте опцию xdev
для удаления файлов только в пределах границ устройства.
-delete
. Это подразумевает -depth
и легче помнить, чем -depth -exec rm -Rf {} \;
– Marcelo Agimóvel
10.02.2020, 13:08
Чтобы удалить (в терминале) все файлы и подкаталоги, кроме базового каталога с именем "dontdelete":
rm -rf dontdelete/*
Чтобы удалить все в каталоге без удаления каталога, введите:
rm -rfv dontDeleteMe/*
Обратите внимание, что часть /*
очень важна. Если вы поставите пробел перед *
, он удалит все ваши файлы в вашем текущем каталоге.
Кроме того, будьте очень осторожны, играя с rm
, -r
и *
в одной команде. Они могут быть катастрофической комбинацией.
Обновление: Хорошо, я поняла, если у вас есть скрытые / точечные файлы [имена файлов с точками в начале, например. .hidden
] тогда эти файлы останутся нетронутыми.
На самом деле, самое простое решение первоначального вопроса : rm -rfv dontDeleteMe && mkdir dontDeleteMe
Еще один вариант - использовать -exec
опцию или трубу [119]. до xargs
(ниже):
find dontDeleteMe/* -print0 | xargs -0 rm -rv
rm -rf *
так или иначе.
– activedecay
10.02.2020, 13:10
Откройте терминал ( Ctrl kbd> + Alt kbd> + T kbd>) и наберите следующий текст:
find somedir -mindepth 1 -delete
Это будет соответствовать всем файлы и каталоги внутри somedir
и его (внучатых) потомков, включая «скрытые» точечные файлы, но исключая сам somedir
из-за -mindepth 1
, а затем -delete
из них.
Я не уверен, почему это так сложно, помоги мне, если я не прав
cd DoNotDeleteDir #<- this is just to make sure we are inside
find . | xargs rm -rf
Вот и все
Вы можете использовать find
с флагом -delete
:
find dontDeleteMe/* -delete
Параметр /*
важен, поскольку говорит find
искать только ВНУТРИ папки, называемой "dontDeleteMe".
Также убедитесь, что флаг -delete
находится в конце команды find
.
dotglob
. Иначе с помощью -mindepth 1
опция флага кажется единственным способом получить его работа.
– Anil Kumar B
10.02.2020, 13:12
.
и..
каталоги. Этого можно избежать путем изменения{.*}
к{.??*}
, но тогда Вы won' t удаляют скрытые файлы только с одним символом, такой как.a
. – Damian Alberto Pastorini 10.02.2020, 13:07