http://www.perlmonks.org?node_id=998264


in reply to File not found error

Well, first of all, your find syntax is incorrect (did you mean to specify ${wkDir} earlier in the command line?).

Secondly, you should use safer list variant of system: system(qw/find . -mtime +20 -type d/,$wkDir,qw/-exec rm -rf {} ;/); (in this case the qw// operator splits the line in a list and passes all arguments safely straight to find not invoking any shell).

Thirdly, you didn't state what did you want to do. Please read How do I post a question effectively? and XY Problem and tell us what you wanted to achieve using this command.

Sorry if my advice was wrong.

Replies are listed 'Best First'.
Re^2: File not found error
by rrrrr (Novice) on Oct 11, 2012 at 05:00 UTC

    Hi aitap

    I want one liner command to delete non empty directories older than days. So tried of find command. I want to pass the path name and no of days through a find command. I searched hardly I couldnt find anything.

      man find:

      SYNOPSIS find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [express +ion] <...> find: paths must precede expression
      So, first, move all your paths to search into before any expressions. Next, replace -exec rm -rf {} ; with -ls in order to debug your expression and make sure it finds only what you want to delete. Next, run and check that your command runs and returns expected results. Finally, move -exec rm -rf {} ; back in its place.

      You can also use find2perl to make a Perl program from find expression or start manually using File::Find instead.

      Sorry if my advice was wrong.