Видалення файлів рекурсивно в Linux


1

Як видалити всі файли .pyc рекурсивно з певного каталогу, включаючи підкаталоги? я намагався

$rm -f *.pyc

Це, здається, працює лише для поточного каталогу, але не для каталогів, що слідують за ним. Будь ласка, допоможи мені..

Відповіді:


1

Можна використовувати

cd <your_directory>
find . -name "*.pyc" -exec rm -rf {} \;

Це видалить всі файли * .pyc з поточного каталогу та його підкаталогу


1
Я відчував, що це дуже проста команда.

Чому ніхто не думає про використання rm -rf *.pyc ?
Nehal J Wani

1
@ NehalJ.Wani, тому що це не спрацювало. rm не має функції пошуку. rm -rf може видаляти каталоги (і підкаталоги рекурсивно). Але не шукати через підкаталоги і видаляти тільки файли.
ypercubeᵀᴹ

5

Використовуйте find:

find /some/directory -type f - name "*.pyc" -exec rm -f {} \;

або, якщо ваш find має -delete опція:

find /some/directory -type f - name "*.pyc" -delete

2
find /var/www/html -name "*.pyc" -delete

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