find . -depth -exec rm {} + 2>/dev/null
rm
не удаляет каталоги, поэтому просто запустите его на всех.
Чтобы сохранить символические ссылки на каталоги:
find . ! -type d -exec sh -c '
for f do [ -d "$f" ] ||
set "$@" "$f"; shift
done; rm "$@"' sh {} +
И я думаю, что это также должно работать, возможно, немного оптимизированным способом, если есть много файлов, которые могут нуждаться в тестировании в приведенной выше версии:
find . ! \( -type l -o -type d \) \
-exec rm {} + -o -exec sh -c '
for f do [ -d "$f" ] ||
unlink "$f";done' sh {} +