find -print0 | while IFS= read -rd $'\0' filename ; do echo "[$filename]" ; done
-print0, prints the full file name on the standard output, followed by a null character instead of the newline character.
IFS, is the "Internal Field Separator" that is used for word splitting after expansion. Here, IFS is set to null string.
-r, specifies that backslash "\" does not act as an escape character.
-d, is the delimeter. Which in this case is the null character '\0'.
$'\0', the $ prefixed single quoted string decodes the backslash escape character. In this case a null character.
[], is simply there to print out the text, so you notice any spaces in the beginning and end of text.
- sandip's blog
- Login or register to post comments