Bunun birkaç olası nedeni var.
1)
Yalnızca dizinleri ( -type d
) silmesini söylediniz ve bu dizinlerin içinde hala dosyalar var.
2)
Dizinleriniz sadece başka dizinler içermektedir, dolayısıyla -type d
içerik sorunuyla ilgilenecektir. Ancak, büyük ölçüde FreeBSD'ye dayanan OS-X kullanıyorsunuz ve FreeBSD find
varsayılan olarak dizini içeriğinden önce işleyecektir.
Bununla birlikte, -depth
bu sorunu çözme seçeneği find
, dizini içeriğinden sonra işlemeyi söyleyerek çözülür .
find ~ -name __pycache__ -type d -ls -delete -depth
Bu sorun linux'ta mevcut değildir, çünkü -delete
seçenek dolaylı olarak etkindir -depth
.
FreeBSD man 1 find
:
-depth Always true; same as the non-portable -d option. Cause find to
perform a depth-first traversal, i.e., directories are visited in
post-order and all entries in a directory will be acted on before
the directory itself. By default, find visits directories in
pre-order, i.e., before their contents. Note, the default is not
a breadth-first traversal.
GNU man 1 find
:
-depth Process each directory's contents before the directory itself. The -delete
action also implies -depth.
find ~ -path '*/__pycache__*' -delete
veya muhtemelenfind ~ -path '*/__pycache__/*' -o -name __pycache__ -delete
güvende olması gerekir.