Nowe posty

Autor Wątek: Bash kopiowanie plików do jednego katalogu proszę o pomoc  (Przeczytany 3373 razy)

amajcher

  • Gość
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

grzemach

  • Gość
Bash kopiowanie plików do jednego katalogu proszę o pomoc
« Odpowiedź #1 dnia: 2013-01-25, 09:00:47 »
#! /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.

xavery

  • Gość
Bash kopiowanie plików do jednego katalogu proszę o pomoc
« Odpowiedź #2 dnia: 2013-01-25, 11:09:06 »
Zostaw rekurencję. Zainteresuj się poleceniem find i zrób to w jednej linijce.

amajcher

  • Gość
Bash kopiowanie plików do jednego katalogu proszę o pomoc
« Odpowiedź #3 dnia: 2013-01-25, 11:35:01 »
tylko ja muszę zrobić to rekurencyjnie bo to ćwiczenie na zaliczenie a kolega się myli bo nie ma powrotu do wcześniejszego katalogu