Estás haciendo todo bien. Es el '*' que le da un problema (el shell lo está expandiendo en una lista de archivos en lugar de la find
). La sintaxis correcta podría ser:
cd <your_directory>; find . -type f | xargs rm -f
find <your_directory> -type f | xargs rm -f
(Este último es un poco menos eficiente ya que le pasará nombres más largos xargs
, pero apenas notará :-))
Alternativamente, puede escapar de su '*' de esta manera (sin embargo, en ese caso también intentará eliminar también "." Y ".."; no es un problema, solo recibirá una pequeña advertencia :-)):
find . -name '*' | xargs rm -f
find . -name "*" | xargs rm -f
find . -name \* | xargs rm -f
Si sus nombres de archivo contienen espacios, use esto:
find . -type f -print0 | xargs -0 rm -f