Forum Linux.pl
Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: amajcher w 2013-01-24, 21:17:50
-
to jest programik który kopiuje pliki z katalogu i jego podkatalogów do jednego folderu nie wiem czemu ale niedziala do konca dobrze może ktoś mi wyjaśnić dlaczego ?
#! /bin/bash
search() {
for i in `ls`
do
if [ -d $i ]
then
cd $i
search $i $2
elif [ -f $i ]
then
cp $i $2
fi
done
cd ..
}
search $1 $2
-
#! /bin/bash
search() {
for i in `ls $2`
do
cd $2
if [ -d $i ]
then
search $1 $2'/'$i
elif [ -f $i ]
then
cp $i $1
fi
done
}
search $1 $2
mam wrażenie że zamieniłem kolejność. W mojej wersji jest parametr 1 gdzie kopiujemy, parametr 2 co kopiujemy.
W twojej wersji brakowało przejścia do katalogu cd $2 przed sprawdzaniem czy jest to plik czy katalog.
-
Zostaw rekurencję. Zainteresuj się poleceniem find i zrób to w jednej linijce.
-
tylko ja muszę zrobić to rekurencyjnie bo to ćwiczenie na zaliczenie a kolega się myli bo nie ma powrotu do wcześniejszego katalogu