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 directoryfind: rm -i mysite/templates/doors/orders/.create.html.swp: No such file or directoryfind: rm -i mysite/templates/doors/orders/.detail.html.swp: No such file or directoryfind: 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? nI guess I'm doing something wrong with the -exec option. Any suggestions? Thanks in advance!
What is wrong with this find all vim swap files and remove them with a confirmation command?
find;rm
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:find mysite mysite_BAK -name '*.swp' -exec rm -i '{}' \;so find gets multiple arguments after -exec and treats the first one as command and others as the command arguments.