Portál AbcLinuxu, 8. listopadu 2025 00:30
for i in `ls ./` do neco s $i doneale problem je ze kdyz je v nazvu souboru mezera tak to dosazuje za i casti nazvu misto celoho jmena. Da se to nejak vyresit?
Buď for i in *; do ... nebo find a omezit hloubku prohledávání a použít parametr -exec neco s {} \;
$ find . -maxdepth 1 -mindepth 1 | xargs -I '{}' mv '{}' '{}'.jpg
rename 's/[jJ][pP][gG]$/jpg/' *
find . -maxdepth 1 | sed 's_ _\\ _g' | ls -la
for file in *\ *; do
mv "$file" "${file// /_}"
done
zmenil mezery za _ , ale kdyby mel nekdo reseni jak to udelat bez toho pjmenovani , tak sem s nim.
for i in *.[Jj][Pp][Gg]; do
NAME=${i%.*}.jpg
mv "$i" "$NAME"
done
Tento script funguje. Treba požívať správne znaky ""
for i in *; do
echo mv \"$i\" \"${i%.*}.jpg\";
# mv "$i" "${i%.*}.jpg";
done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.