Первую часть проще всего сделать с помощью небольшого количества Python:
#!/usr/bin/env python
import os, sys
for topdir in sys.argv:
for root, dirs, files in os.walk(topdir):
if not files and len(dirs) == 1 and dirs[0] == 'Attic':
print os.path.join(root)
Запустите ее так:
./script.py /path/to/CVS/repo
Чтобы удалить каталоги, предполагая, что в ваших файлах нет символов новой строки, встроенных в имена, и предполагая, что xargs
(т. Е. С параметром -d
):
./script.py /path/to/CVS/repo | xargs -d '\n' rm -rf
При несовместимости xargs
вы можете изменить сценарий для печати NUL
-терминированные строки:
#!/usr/bin/env python
from __future__ import print_function
import os, sys
for topdir in sys.argv:
for root, dirs, files in os.walk(topdir):
if not files and len(dirs) == 1 and dirs[0] == 'Attic':
print(os.path.join(root), end="\0")
Затем вы должны использовать xargs -0
, чтобы уничтожить каталоги:
./script.py /path/to/CVS/repo | xargs -0 rm -rf
Чтобы уничтожить пустые каталоги после этого:
find /path/to/CVS/repo -depth -type d -empty -delete