[+] bash - dowi

Potrzebujesz pomocy z C, C++, perl, python, itp.
wespit
Posty: 2
Rejestracja: 28 marca 2009, 21:42

[+] bash - dowiązania do plików i puste znaki w nazwie

Post autor: wespit »

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:

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
Generalnie problem występuje w tej oto linii:

Kod: Zaznacz cały

for i in $(find -type f | grep -v , | grep -v ".lamus");
Prosiłbym o pomoc :P
snah
Beginner
Posty: 103
Rejestracja: 19 lutego 2008, 09:09

Re: bash - dowiązania do plików i puste znaki w nazwie

Post autor: snah »

[quote="wespit"]Generalnie problem występuje w tej oto linii:

Kod: Zaznacz cały

for i in $(find -type f | grep -v , | grep -v ".lamus")]
Prosiłbym o pomoc :P[/quote]

[code]IFS=$'\n'
for i in $(find -type f | grep -v , | grep -v ".lamus");
wespit
Posty: 2
Rejestracja: 28 marca 2009, 21:42

Post autor: wespit »

Dziękuję :mrgreen: problem rozwiązany.
Pozdrawiam.
ODPOWIEDZ