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:
Kod: Zaznacz cały
#!/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
Kod: Zaznacz cały
for i in $(find -type f | grep -v , | grep -v ".lamus");