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

Tematy

 
    
 

 

 

 

[+] 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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis