Delete files or directories; true if removal succeeded. If the
removal failed, an error message is issued and find
’s exit status
will be nonzero (when it eventually exits).
Warning: Don’t forget that
find
evaluates the command line as an expression, so putting ‘-delete’ first will makefind
try to delete everything below the starting points you specified.
The use of the ‘-delete’ action on the command line automatically turns on the ‘-depth’ option. As in turn ‘-depth’ makes ‘-prune’ ineffective, the ‘-delete’ action cannot usefully be combined with ‘-prune’.
Often, the user might want to test a find
command line with ‘-print’
prior to adding ‘-delete’ for the actual removal run. To avoid surprising
results, it is usually best to remember to use ‘-depth’ explicitly during
those earlier test runs.
See Cleaning Up for a deeper discussion about good use cases of the ‘-delete’ action and those with surprising results.
The ‘-delete’ action will fail to remove a directory unless it is empty.
Together with the ‘-ignore_readdir_race’ option, find
will
ignore errors of the ‘-delete’ action in the case the file has disappeared
since the parent directory was read: it will not output an error diagnostic, not
change the exit code to nonzero, and the return code of the ‘-delete’
action will be true.