У меня есть каталог с забавными персонажами, такими как ^ M на спине. Они были созданы случайно, и я хочу удалить их.

Я перечисляю каталоги по ls -iql и записываю их номер инода, затем пытаюсь удалить его, выполняя поиск по номеру инода.

find . -inum 7990028 -exec rmdir -i {} \;

Но команда такая медленная. Я получил только несколько сотен каталогов, но внутри каталогов много файлов. Я думаю, что команда find, должно быть, искала файлы.

Как я могу улучшить это?

3 ответа3

1

. в команде означает "поиск из текущего каталога". Таким образом, чтобы сделать это быстро, вы должны быть в каталоге над каталогом, который вы хотите удалить. Затем вы можете также ограничить глубину поиска текущим каталогом, а также ограничить только каталогами:

find . -inum 7990028 -type d -maxdepth 1 -exec rmdir -i {} \;
1

Поскольку вы знаете, что проблемные символы нельзя распечатать, вы можете просто использовать

rm -rf *[^[:print:]]*
0

Вероятно, гораздо проще просто удалить все имена файлов, содержащие в себе ^M чем ... ну ... найти.

rm -rf * Ctrl V Ctrl M *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .