Установка -f
флага для rm означает, что он не будет жаловаться, когда не может что-то сделать, например, попытаться удалить файл, принадлежащий другому пользователю (например, root), или у вас нет прав на запись в каталог. sudo rm -rf /path/to/thedirectory
без сомнения уничтожит каталог и файлы в нем. ls -B thedirectory | cat -ve
также может быть освещающим.
Как удалить каталог, который содержит безымянные файлы?
Я пытаюсь удалить предположительно пустой каталог в файловой системе ReiserFS, но не могу, потому что rm
постоянно жалуюсь, что каталог не пустой.
$ rm -rf thedirectory rm: cannot remove `thedirectory': Directory not empty $ ls -a thedirectory . ..
Проблема в том, что все, что я делаю, чтобы попытаться определить, что на самом деле находится в каталоге, похоже, показывает, что есть три файла без имен . Например:
$ cd thedirectory $ ls ls: cannot access : No such file or directory ls: cannot access : No such file or directory ls: cannot access : No such file or directory $ find . . ./ ./ ./ $ ls -N | cat -A $ $ $
Поскольку я не могу получить имена файлов, я не могу запустить stat
или что-нибудь полезное для этих загадочных файлов. А stat
в самом каталоге дает, казалось бы, нормальные результаты:
$ stat . File: `.' Size: 192 Blocks: 0 IO Block: 4096 directory Device: 807h/2055d Inode: 825484 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 1000/ diazona) Gid: ( 1000/ diazona) Access: 2012-01-27 16:32:45.000000000 -0500 Modify: 2012-01-27 16:31:58.000000000 -0500 Change: 2012-01-27 16:31:58.000000000 -0500
Я полагаю, что происходит какое-то повреждение файловой системы, что, вероятно, означает, что я должен выключиться, загрузиться с живого USB-накопителя и попытать счастья reiserfsck
. Но есть ли более простой способ справиться с этим?
3 ответа на вопрос
Вы пытались удалить инод напрямую?
$ ls -iN | cat -A 794539 $ $ find . -inum 794539 -exec rm -i {} \;
Вы можете увидеть все файлы с
ls -la /name/of/path
... который даст вам длинный список, включая любые точечные файлы.
Чтобы удалить каталог и все внутри него, включая другие подкаталоги, используйте:
rm -rf /name/of/path/*
... хотя будьте осторожны, если вы планируете использовать подстановочный знак, что приводит к (в) известному утверждению:
rm -rf *
... что опасно, даже для "обычных пользователей". Если вам когда-либо понадобится использовать подстановочный знак, я бы предложил:
rm -rf /name/of/path
или же
rm -rf ./*
... последний с точечной косой чертой, предполагающий, что вы находитесь "внутри" каталога, который вы хотите очистить ... вам все равно нужно будет переместиться вниз на один каталог и удалить его снаружи себя.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4