Як видалити велику кількість файлів / папок у 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 з цих папок всередині _temporary):

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

Вміст цих насправді папок, а не файлів. Кожна з цих 319322 папок має рівно один файл всередині. Не впевнений, навіщо вести ведення журналу таким чином.


-type fзбирається знайти звичайні файли. Ви хочете , -type dякщо ви використовуєте findдля пошуку папок
Matt

Лише невеликий коментар до пропозицій @ Метта: -name '*.*'не потрібен, якщо ви використовуєте просто -type d, можливо, я б використав щось подібне: find . -type d -deleteабо find . -name "_temporary" -delete(залежно від конкретного випадку, можливо, є файли, які не слід видаляти).
noggerl

спробував це, він зависає назавжди і не видаляє файли: /
user1745713

Чи вдалося вам колись вирішити це? Натрапив на таку саму проблему в OS X.
Охад Шнайдер

Відповіді:


1

Чи працює rm, rm -rабо rmdirпрацює над окремим файлом або каталогом відповідно?

Якщо так, то я ставлю на обмін, що ви чекаєте на NFS, щоб сортувати імена папок 319222 та представити їх за алфавітом. Спробуйтеls -f | xargs rm -r

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.