Czesc,
Mam pewien problem i nie wiem jak sobie z nim poradzić. Jestem dość świeży jeżeli chodzi o programowanie, Linuxa czy pisanie skryptów w bash.
Problem polega na tym, że:
Moj skrypt znajduje się w np w /root/skrypt
dst_path="/nauka/dir1/dir2"
tmp_path="tmp"
nazwa_pliku=test
#Zmienna tmp_path to katalog tworzony automatycznie po odpaleniu skryptu w katalogu gdzie skrypt sie znajduje.
if cp $tmp_path/$nazwa_pliku $dst_path && echo Kopiuje plik wynikowy do $dst_path.
then echo "Plik zostal skopiowany"
else echo "Plik nie został skopiowany- sprawdz dlaczego !!!"
fi
Problem w tym że cp nie dochodzi do skutku, ciągle mam komunikat "cp: nie można utworzyć zwykłego pliku `/nauka/dir1/dir2': Nie ma takiego pliku ani katalogu".
[+]Skrypt bash
[+]Skrypt bash
Ostatnio zmieniony 12 czerwca 2016, 11:11 przez moloch, łącznie zmieniany 1 raz.
Re: Skrypt bash
Komunikat raczej jasno "mówi", że nie ma takich katalogów.
Wypadałoby je najpierw utworzyć lub dopisać do skryptu coś na bazie polecenia mkdir.
Jak poczytasz man cp to znajdziesz też opcję --parents.
Wypadałoby je najpierw utworzyć lub dopisać do skryptu coś na bazie polecenia mkdir.
Jak poczytasz man cp to znajdziesz też opcję --parents.
Re: Skrypt bash
Katalogi są utworzone. Przepraszam ze o tym wczesniej nie wspomnialem. Operacja wykonywana z roota
Re: Skrypt bash
Gdzie?moloch pisze:Katalogi są utworzone.
Re: Skrypt bash
bezpośrednio na dysku /nauka - jest równolegle do katalogów /root/, /home/ itp.
Re: Skrypt bash
W takim razie pokaż to w odpowiednim wyniku:
Kod: Zaznacz cały
ls /
Re: Skrypt bash
Chyba problem rozwiązany - jeszcze musze dokladnie potestowac z roznych lokalizacji. Wygląda na to ze problemem był brak / po $dst_patch
było:
if cp $tmp_path/$nazwa_pliku $dst_path
jest
if cp $tmp_path/$nazwa_pliku $dst_path/
i działa. Dzieki za pomoc
było:
if cp $tmp_path/$nazwa_pliku $dst_path
jest
if cp $tmp_path/$nazwa_pliku $dst_path/
i działa. Dzieki za pomoc
Re: Skrypt bash
To akurat nie ma znaczenia (przynajmniej u mnie).