When I execute the following gzip in FOR loop on DIR q, then it works as expected - all .sh files will be gziped.
Code:
for i in q/*.sh ; do gzip $i; done
Code:
# ls -al q
total 196
drwxrwxr-x 3 meme meme 4096 kwi 6 10:48 .
drwxr-xr-x 13 meme meme 4096 kwi 6 10:36 ..
-rw-rw-r-- 1 meme meme 1959 sie 26 2015 }
drwxrwxr-x 2 meme meme 4096 wrz 24 2015 20150801
-rwxr-xr-x 1 meme meme 111 paź 13 14:37 arg1.sh.gz
-rwxr-xr-x 1 meme meme 91 paź 13 14:39 arg2.sh.gz
-rwxr-xr-x 1 meme meme 2065 sie 26 2015 con2.sh.gz
-rwxrwxrwx 1 meme meme 2007 sie 26 2015 con3.sh.gz
-rwxr-xr-x 1 meme meme 800 sie 26 2015 con4.sh.gz
-rwxr-xr-x 1 meme meme 729 sie 26 2015 con5.sh.gz
-rwxr-xr-x 1 meme meme 542 sie 28 2015 con6.sh.gz
-rwxr-xr-x 1 meme meme 1024 sie 26 2015 con.sh.gz
-rwxr-xr-x 1 meme meme 544 sie 28 2015 con_working.sh.gz
-rw------- 1 root root 736 kwi 6 10:45 nohup.out
-rwxrwxrwx 1 meme meme 156 sie 26 2015 telneter.sh.gz
-rwxrwxr-x 1 meme meme 1613 sie 26 2015 working.sh.gz
-rw-rw-r-- 1 meme meme 10240 gru 3 16:52 working.tar
-rw-rw-r-- 1 meme meme 0 sie 27 2015 x
However, when I execute this same in a background, I will get errors and no .sh files will be gziped.
Code:
nohup bash -c "for i in q/*.sh ; do gzip $i; done" &
Code:
# cat nohup.out
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
gzip: q/working.sh.gz: No such file or directory
Does anyone know why it is not working?