Hay un par de posibles razones para esto.
1)
Le dijiste que eliminara solo directorios ( -type d
), y esos directorios todavía tienen archivos dentro de ellos.
2)
Sus directorios solo contienen otros directorios, por lo que -type d
se ocupará del problema de contenido. Sin embargo, está utilizando OS-X, que se basa principalmente en FreeBSD, y FreeBSD find
procesará el directorio antes que su contenido de manera predeterminada.
Sin embargo -depth
, existe la opción de resolver este problema diciéndole find
que procese el directorio después de su contenido.
find ~ -name __pycache__ -type d -ls -delete -depth
Este problema no existe en Linux porque la -delete
opción habilita implícitamente -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
, o probablementefind ~ -path '*/__pycache__/*' -o -name __pycache__ -delete
sea seguro.