I am trying to remove all vim swap file *.swp
and remove them with a confirmation. The find
command found the files, but rm
says No such file or directory
with the -i
option. When I hardcode the path of the file and just use rm -i
then it seems to work.
See below
(doors)hobbes3@hobbes3 ~/Sites $ find mysite mysite_BAK -name *.swp -exec 'rm -i {}' \;
find: rm -i mysite/templates/.base.html.swp: No such file or directory
find: rm -i mysite/templates/doors/orders/.create.html.swp: No such file or directory
find: rm -i mysite/templates/doors/orders/.detail.html.swp: No such file or directory
find: rm -i mysite/templates/doors/orders/.list.html.swp: No such file or directory
(doors)hobbes3@hobbes3 ~/Sites $ rm -i mysite/templates/.base.html.swp
remove mysite/templates/.base.html.swp? n
I guess I'm doing something wrong with the -exec
option. Any suggestions? Thanks in advance!
Best Answer
The error is generated by find, not rm.
The reason is that you have written it so
'rm -i <file>'
is the single argument. This shall be rewritten:so find gets multiple arguments after "-exec" and treats the first one as command and others as the command arguments.