У меня есть каталоги файловой системы Ubuntu в корневом каталоге, и я случайно скопировал сотни файлов в корневой каталог.
Я интуитивно пытался удалить скопированные файлы, исключив файловую систему, как
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
но это не работает. Как правильно исключить некоторые каталоги при удалении целого?
РЕДАКТИРОВАТЬ: Никогда не пытайтесь использовать команды здесь, не зная, что делать!
mc
. Выберите все с помощью*
, затем отмените выбор определенных файлов с помощью-
илиInsert
./bin/bash
mc
Midnight Commander, очень полезная имитация Norton Commander. Он работает в терминале. (И Midnight Commander, и Norton Commander являются примерами так называемого православного файлового менеджера .)Ответы:
Поскольку вы используете
bash
:Я рекомендую добавлять
echo
в начале командной строки, когда вы запускаете что-то, что потенциально может взорвать всю систему. Удалите его, если вы довольны результатом.Примечание. Приведенная выше команда не удаляет скрытые файлы (имена которых начинаются с точки). Если вы хотите удалить их, активируйте также
dotglob
опцию:источник
rm -rf ./!(bin,sbin,..)
разделить запятыми, но он удаляет все каталоги.!(...)
синтаксис? Из примера, который я интуитивно думал,ls ./!(*/)
будут перечислены только файлы, но это не сработает.*
или другими глобусами.Эта команда покажет все не-каталоги в
/
:После того, как вы абсолютно уверены, что нет файлов, которые вы хотите сохранить, вы можете использовать:
Безопаснее было бы переместить их в другое место, чтобы убедиться, что вы не удаляете то, что хотите сохранить:
Если в дополнение к файлам у вас также есть каталоги, которые вы добавили в корень файловой системы, это можно автоматизировать, исключив каталоги LSB из автоматизированного
mv
илиrm
, но, честно говоря, поскольку мы имеем дело с очисткой в корень файловой системы, я настоятельно рекомендую вам сделать это вручную, если это вообще возможно.Если это невозможно, что-то вроде этого может помочь:
После того, как вы прошли тест на крик (то есть ваша система все еще работает, и вы не кричите от боли), вы можете удалить содержимое
/root/preserve/
.Важное примечание: что бы вы ни делали, даже не думайте о запуске какой-либо перестановки
rm -fr [ANYTHING GOES HERE] /
.источник
rm
. Как скриптrm -fr $somepath/
сsomepath
неинициализированным в нем. Я мог бы пойти дальше, выражая, насколько это серьезно, но решил остаться дружелюбным по отношению к семье в своем наставлении.Это должно выполнить работу (хотя и не так, как просит ОП):
удалите все файлы / каталоги, которые вы хотите сохранить
Если все ваши файлы имеют одинаковый формат имени, дату или что-то еще, есть другие методы.
Я бы посмотрел на иноды и посмотрел, являются ли они последовательными через ls -i | sort, и если они есть, то новые файлы будут иметь большие иноды. Затем, используя тот же тип процесса, что и выше ...
в приведенной выше команде cut сначала проверьте свой список inode, чтобы убедиться, что это правильное количество.
источник