Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - BASH: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
# failitüüpide array | |||
array=( .mp3 .wav .doc .pdf ) | array=( .mp3 .wav .doc .pdf ) | ||
# kaustade array | |||
array2=( /home/Muusika /home/Muusika /home/Dokumendid /home/Dokumendid ) | array2=( /home/Muusika /home/Muusika /home/Dokumendid /home/Dokumendid ) | ||
for x in `seq 0 | # loen ükshaaval failitüübid array´st sisse | ||
for x in `seq 0 1`; | |||
do | do | ||
echo "${array[x]}" | |||
# kõik failitüübid mis /home kaustas on panen kirja Log.txt faili | |||
find /home -name *"${array[x]}" > /home/Log.txt | find /home -name *"${array[x]}" > /home/Log.txt | ||
# kui kaust on olemas tee nimekiri failidest,mis on kaustas | |||
if [ -d "${array2[x]}" ];then | if [ -d "${array2[x]}" ];then | ||
find "${array2[x]}" -name *"${array[x]}" | awk -F/ '{ print $NF }' > /home/Kaust.txt | find "${array2[x]}" -name *"${array[x]}" | awk -F/ '{ print $NF }' > /home/Kaust.txt | ||
fi | fi | ||
# kui Kaust.txtl on sisu,siis eemaldan need nimed Log.txt failist | |||
if [ -s /home/Kaust.txt ];then | if [ -s /home/Kaust.txt ];then | ||
while read line2 | while read line2 | ||
Line 17: | Line 24: | ||
sed -i "/$line2/ d" /home/Log.txt | sed -i "/$line2/ d" /home/Log.txt | ||
done < /home/Kaust.txt | done < /home/Kaust.txt | ||
# rm /home/Kaust.txt | |||
fi | fi | ||
# kui kausta ei ole loodud siis loon selle | |||
if [ ! -d "${array2[x]}" ];then | if [ ! -d "${array2[x]}" ];then | ||
mkdir "${array2[x]}" | mkdir "${array2[x]}" | ||
fi | fi | ||
# sorteerin välja unikaalsed failinimed | |||
awk -F/ '{ print $NF }' Log.txt|sort| uniq > /home/FNimi.txt | awk -F/ '{ print $NF }' Log.txt|sort| uniq > /home/FNimi.txt | ||
# unikaalsed failinimed sorteerin välja Logtxt failist kus on kõikide selle failitüüpide täis nimed(path) | |||
while read line1 | while read line1 | ||
do | do | ||
grep -m 1 "$line1" Log.txt | sort | uniq -u >> /home/Log.txt.new | |||
done < /home/FNimi.txt | done < /home/FNimi.txt | ||
# rm /home/FNimi.txt | |||
# liigutan failid mis mis on kirjas Log.txt.new failis | |||
if [ -f Log.txt.new ];then | if [ -f Log.txt.new ];then | ||
while read line | while read line | ||
do | do | ||
echo "Paigutan faili:" "$line" "Uude asukohta:" "${array2[x]}" | |||
mv -i "$line" "${array2[x]}" -n | mv -i "$line" "${array2[x]}" -n | ||
done < /home/Log.txt.new | done < /home/Log.txt.new | ||
# rm /home/Log.txt.new | |||
fi | fi | ||
done | done | ||
rm /home/Log.txt | #rm /home/Log.txt | ||
</SOURCE> | </SOURCE> |
Revision as of 12:39, 28 January 2011
#!/bin/bash
# failitüüpide array
array=( .mp3 .wav .doc .pdf )
# kaustade array
array2=( /home/Muusika /home/Muusika /home/Dokumendid /home/Dokumendid )
# loen ükshaaval failitüübid array´st sisse
for x in `seq 0 1`;
do
echo "${array[x]}"
# kõik failitüübid mis /home kaustas on panen kirja Log.txt faili
find /home -name *"${array[x]}" > /home/Log.txt
# kui kaust on olemas tee nimekiri failidest,mis on kaustas
if [ -d "${array2[x]}" ];then
find "${array2[x]}" -name *"${array[x]}" | awk -F/ '{ print $NF }' > /home/Kaust.txt
fi
# kui Kaust.txtl on sisu,siis eemaldan need nimed Log.txt failist
if [ -s /home/Kaust.txt ];then
while read line2
do
sed -i "/$line2/ d" /home/Log.txt
done < /home/Kaust.txt
# rm /home/Kaust.txt
fi
# kui kausta ei ole loodud siis loon selle
if [ ! -d "${array2[x]}" ];then
mkdir "${array2[x]}"
fi
# sorteerin välja unikaalsed failinimed
awk -F/ '{ print $NF }' Log.txt|sort| uniq > /home/FNimi.txt
# unikaalsed failinimed sorteerin välja Logtxt failist kus on kõikide selle failitüüpide täis nimed(path)
while read line1
do
grep -m 1 "$line1" Log.txt | sort | uniq -u >> /home/Log.txt.new
done < /home/FNimi.txt
# rm /home/FNimi.txt
# liigutan failid mis mis on kirjas Log.txt.new failis
if [ -f Log.txt.new ];then
while read line
do
echo "Paigutan faili:" "$line" "Uude asukohta:" "${array2[x]}"
mv -i "$line" "${array2[x]}" -n
done < /home/Log.txt.new
# rm /home/Log.txt.new
fi
done
#rm /home/Log.txt