Sunday, January 16, 2011

Find's -true option: what for?

GNU find (and others?) has a -true test along with the normal -name, -mode, -user and so on. From the man page:

-true Always true.

Every time I see the man page I notice this and wonder when it'd be useful. So, give me some examples of when it's useful :~)

  • When you want to list all files in find format to pipe into another program ?

    I guess it must be more efficient than using -name "*" or something similar.

    Dennis Williamson : `find` with no arguments at all does that.
    Julien Tartarin : Sure, but it's more explicit and has the same syntax with `-true`
    Dennis Williamson : How so?
  • Might useful for debuging when you are ANDing or ORing statements. So if you have a long command with a complex chain of arguments with lots of AND / OR between the statements, and something that isn't working like you expect, you could replace parts of it with -true to check your logic.

    However, I am not sure if this is why it is there, but seems like a legitimate use.

  • Consider find -delete -o -true -print. It's not too useful, but it's a pointer that you can think of -true or -false as means to override an in-expression result of some command with side effects.

    From diunko

0 comments:

Post a Comment