|
[+] bash - dowiązania do plików i puste znaki w nazwie
wespit - 28-03-2009 21:44
Witam. Mam do napisania skrypt tworzący dowiązania twarde do wszystkich plików z katalogu użytkownika i robiący jeszcze kilka innych mniej istotnych w tym momencie rzeczy. W zasadzie wszystko już działa jednakże natrafiłem na problem gdy w nazwie pliku występuje spacja. Skrypt źle interpretuje taką nazwę i dzieli ją na część przed pustym znakiem i po pustym znaku. Oto ten skrypt:
#!/bin/bash tak=0
if [ "$1" = "-v" ] then tak=1 echo "wersja 1.0" elif [ "$1" = "-h" ] then echo "lamus dla plikow" echo "autor: xxx" tak=1 elif [ "$1" = "" ] then tak=0 else echo "blad" tak=1 fi
if [ "$tak" = "0" ] then
if [ -e .lamus ] then echo -ne else mkdir .lamus fi
for i in $(find -type d | grep -v ,| grep -v ".lamus"); do mkdir -p .lamus/${i}; done
for i in $(find -type f | grep -v , | grep -v ".lamus"); do if [ -e .lamus/${i} ] then echo -ne else ln ${i} .lamus/${i} fi
if [ "`ls -i ${i} | cut -f 1 -d ' '`" = "`ls -i .lamus/${i} | cut -f 1 -d ' '`" ] then echo -ne else FILE_NAME=.lamus/${i} if [ -f "$FILE_NAME" ]; then FILE=`ls "$FILE_NAME",* | grep -e "$FILE_NAME"",[0-20]\+$" | tail -n 1 | cut -d ',' -f 2` mv .lamus/${i} ""$FILE_NAME"",""$(( ++FILE ))"" fi ln ${i} .lamus/${i} fi
done
fi
Generalnie problem występuje w tej oto linii:
for i in $(find -type f | grep -v , | grep -v ".lamus");
Prosiłbym o pomoc :P
snah - 30-03-2009 12:04
Generalnie problem występuje w tej oto linii:
for i in $(find -type f | grep -v , | grep -v ".lamus");
Prosiłbym o pomoc :P
IFS=$'\n' for i in $(find -type f | grep -v , | grep -v ".lamus");
wespit - 30-03-2009 16:42
Dziękuję :mrgreen: problem rozwiązany. Pozdrawiam.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|