[Shell Script] Miért kapok mv: cannot stat . No such file or directory hibát?
A feladat, hogy 3 paramétert kap az sh fájl (mappa, szám1, szám2) és a mappában lévő összes file és mappa végére (nem rekurzívan) oda kell fűzni a szám1 és szám2 összegét. Működik is ha a mappának a saját mappát adom meg, ahol a fájl van, de ha egy másikat adok meg rögtön kapom a benne lévő összes fájltól a hibaüzenetet (...). Már ötletem sincs mi lehet a gond elég sok mindent kipróbáltam, hogy működjön:|
A kód:
#!/bin/bash
if [ -d "$1" ] && (( $# >= 3 ))
then
ossz=`expr "$2" + "$3"`
for a in `ls "$1"`
do
if [ -f "$a" ] || [ -d "$a" ]
then
mv "$a" "$a$ossz"
fi
done
ls -r "$1"
else
echo "ERROR"
exit
fi
Az időtöket előre is köszi(:
"cannot stat ."
Itt a . (pont) az aktuális mappa, ami ugye minden mappán belül létezik, és nem érdemes ilyen módon piszkálni. Szerintem át kéne ugrani, ahogy a ".." mappát is.
sum = $(($2+$3));
find $1 -type f -exec mv '{}' '{}'.$sum \;
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!