Question: I am batch converting some pictures with a quick and dirty bash script using ufraw :

```
IFS=$'\n'
PICS="/media/disk/kevin/Images/";
for pic in $(find $PICS -name "*CR2");
do
    ufraw-batch $pic --out-type jpg --size=2048 --overwrite --out-path=$PICS;
    rm -f $pic
done;
IFS=" ";

```

It's running fine with the usual rights, but if I run it with :

sudo ./convert.sh

I got this strange error : 

```
find: "/media/disk/kevi" : no such file or directory.

```

I made it :

```
IFS=$'\n'
PICS="/media/disk/kevin/Images/";
echo PICS;

```

Then I got surprisingly :

```
/media/disk/kevi /Images/

```

WTF ?

Answer: 
You're winding up with `$IFS` being `"n"`; it's not interpreting `\n` as a newline but as a meaninglessly escaped `n`. I vaguely suspect you're running into some sort of ill-documented protection of `$IFS` for root (since it's a well known exploit vector), but you might want to try embedding a literal newline instead of a symbolic one in your script using `ctrl`-`v` `enter`.
Your code seems to have a typo. If the actual code is IFS='\n' or IFS="\n", you've set the separator to a list of two characters, \ and n. If IFS=\n, then one char A POSIX shell doesn't interpret \n as LF. It has nothing to do with root.

```
$ BLAH='\n'
$ echo $BLAH
\n
$ BLAH="\n"
$ echo $BLAH
\n
$ BLAH=\n
$ echo $BLAH
n
$ BLAH="Both\n\and\aregone"
$ echo $BLAH
Both   a d arego e

```