There I said it !

  • gnuhaut
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 hours ago

    You can just do for f in * (or other shell glob), unless you need find’s fancy search/filtering features.

    The shell glob isn’t just simpler, but also more robust, because it works also when the filename contains a newline; find .. | while read -r will crap out on that. Also apparently you want while IFS= read -r because otherwise read might trim whitespace.

    If you want to avoid that problem with the newline and still use find, you can use find -exec or find -print0 .. | xargs -0, or find -print0 .. | while IFS= read -r -d ''. I think -print0 is not standard POSIX though.

    • MonkderVierte
      link
      fedilink
      arrow-up
      1
      ·
      3 hours ago

      because it works also when the filename contains a newline

      Doesn’t that depend on the shell?

      • gnuhaut
        link
        fedilink
        arrow-up
        1
        ·
        3 hours ago

        I don’t think so and have never heard that, but I could be wrong.