Portál AbcLinuxu, 12. listopadu 2025 14:25
/home/ussitema/public_html/furnituretable -> /home/ussitema/public_html/FURNITURETABLENo a jde o to ze rucne bych to delal hrozne dlouho, tak jestli by se na to nedal vytvorit nejaky jednoduchy scriptik? Dekuji
ln -s `ls | tr [A-Z] [a-z]` .[root@server2 test]# ln -s `ls | tr [A-Z] [a-z]` . [root@server2 test]# ls aaa AAA bb ccc CCC [root@server2 test]# ls -l total 12 lrwxrwxrwx 1 root root 3 Feb 12 05:25 aaa -> aaa drwxr-xr-x 2 root root 4096 Feb 12 05:25 AAA drwxr-xr-x 2 root root 4096 Feb 12 05:25 bb lrwxrwxrwx 1 root root 3 Feb 12 05:25 ccc -> ccc drwxr-xr-x 2 root root 4096 Feb 12 05:25 CCC
#!/bin/bash
for i in *; do
ln -s $i `echo $i | tr [A-Z] [a-z]`
doneNa jeden řádek to pak je:
for i in *; do ln -s $i `echo $i | tr [A-Z] [a-z]`; done
#!/bin/bash
#set -x
for i in *; do
if [[ -d "$i" && ! -L "$i" ]]; then
lowercasedir=`echo "$i" | tr [A-Z] [a-z]`
if [[ "$lowercasedir" != "$i" ]]; then
if [[ ! -e "$lowercasedir" ]]; then
ln -s "$i" "$lowercasedir"
else
dirinode=`ls -id "$i" | gawk '{print $1}'`
if [[ ! -e "${lowercasedir}_${dirinode}" ]]; then
ln -s "$i" "${lowercasedir}_${dirinode}"
fi
fi
fi
fi
done
find, ln a tr. U findu použij parametr -exec. Je to na jeden řádek.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.