sorry if this is asked before but, I was curious about what is the equivalent Linux command of forfiles.exe in Windows? This came to my mind when I saw this question

link|improve this question
1  
If you included a description of exactly what forfiles.exe does, those of us who know Linux very well will find helping you much easier. – MikeyB Sep 18 '09 at 21:01
sorry, It's my bad not to explain what forfiles.exe does in windows; but a simple google search gives satisfying results on what forfiles.exe does. Anyway, I'm still ashamed of myself why "find" didn't come to my mind before asking this silly questions ;) – Hailsematary Sep 18 '09 at 21:26
@MikeyB, you could have followed the link to the other question. There was a forefiles description there. I updated the question to include a link directly to the technet docs. – Zoredache Sep 18 '09 at 21:46
feedback

4 Answers

find is the full-powered replacement, but for simple operations on files in the current directory this sh-script can be pretty useful (and easier to read/write) as well:

for file in *.jpg; do
  echo "do something with $file"
done
link|improve this answer
You could have spelled it "for files" ;-) [I know, then it wouldn't make sense.] – Dennis Williamson Sep 18 '09 at 22:22
feedback

I think find provides the functionality that forfiles offers.

link|improve this answer
Ah yes, thanks for reminding ;) I searched google a little bit and I think this should be the answer: howtogeek.com/howto/ubuntu/… – Hailsematary Sep 18 '09 at 20:41
feedback

The find command does what you want. Here's an example:

find /mnt/Pictures -name '*.jpg' \! -mtime 7 -exec rm {} \;

This will delete all the jpg files from /mnt/Pictures, which haven't been modified in the last 7 days (168 hours). If you don't care about the case of the filenames use -iname instead of -name.

Here's a correspondence between the parameters of forfiles and the parameters of find:

  • /p -> the path is the first argument of find
  • /s -> by default find searches in all subdirectories. To disable this use the -maxdepth parameter with 1.
  • /c -> -exec. Also replace @file with {} and don't forget to end the command with \; (many beginners are bit by this error)
  • /d -> -mtime n. File's data was last modified n*24 hours ago.
link|improve this answer
feedback

You can create a cron job that uses find with the appropriate arguments, e.g. -mtime +7

link|improve this answer
3  
What does cron have to do with forfiles? – Bill Weiss Sep 18 '09 at 20:47
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.