Как удалить большое количество файлов / папок в Linux


1

Мы используем hadoop, чтобы разбить таблицу на более мелкие файлы для передачи в mahout, но в процессе мы создали огромное количество _временных журналов.

У нас есть монтирование NFS для тома hadoop, поэтому мы можем использовать все команды linux для удаления файлов папок, но мы просто не можем их удалить, вот что я пробовал до сих пор:

hadoop fs -rmr /.../_temporary  : hangs for hours and does nothing

на монтировании NFS:

rmr -rf /.../_temporary :hangs for hours and does nothing

find . -name '*.*' -type f -delete : same as above

Папки выглядят так (38 из этих папок внутри _tevent):

drwxr-xr-x 319324 user user 319322 Oct 24 12:12 _attempt_201310221525_0404_r_000000_0

Содержимое этих файлов на самом деле является папками, а не файлами. Каждая из этих 319322 папок имеет ровно один файл внутри. Не уверен, почему ведение журнала таким образом.


-type f собирается найти обычные файлы. Ты хочешь -type d если вы используете find найти папки
Matt

Небольшой комментарий к предложениям @ Matt: -name '*.*' не нужно, если вы использовали только -type dможет быть, я бы использовал что-то вроде этого: find . -type d -delete или же find . -name "_temporary" -delete (в зависимости от конкретного случая, может быть, есть файлы, которые не следует удалять).
noggerl

попробовал, зависает навсегда и не удаляет файлы: /
user1745713

Вы когда-нибудь были в состоянии решить эту проблему? Встречаясь с точно такой же проблемой в OS X.
Ohad Schneider

Ответы:


1

Делает rm, rm -r, или же rmdir работать над отдельным файлом или каталогом соответственно?

Если так, то держу пари, что вы ожидаете, что NFS отсортирует имена папок 319222 и представит их в алфавитном порядке. Пытаться ls -f | xargs rm -r

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.