Tässä olisi pikku scriptinpätkät. En tehnyt sitä yhteen könttiin vaan kaksi erikseen, on hieman yleiskäyttöisempi tässä muodossa. Ensimmäinen komentotiedosto monistaa halutun määrän tekstitiedostoja. Sille annetaan rivillä tiedoston polku/nimi sekä numero (eli lukumäärä). Esimerkki
./monista koeteksti.txt 25
tekee 25 kopiota tiedostosta "koeteksti.txt" ja nimeää ne kopiot 0.txt, 1.txt, 2.txt,.....
Tässä tuo koodin pätkä:
#!/bin/bash
# Monistaa halutun määrän tekstitiedostoja yhdestä lähdetiedostosta
# Käyttö:
# monista tiedosto.txt lukumäärä
#
# Esimerkki "monista tiedosto.txt 3" tekee 3 kopiota ja nimeää ne 0.txt, 1.txt, 2.txt
#
if [ $# -eq 2 ]; then
i=0
while [ $i -lt $2 ]; do
cp $1 $i.txt
let i=i+1
done
else
echo
echo "Käyttöesimerkki: monista tiedosto.txt 3"
echo
echo "tekee 3 kopiota tiedostosta ""tiedosto.txt"" numeroiden ne 0.txt, 1.txt ja 2.txt"
echo
fi
Tuo pitää kopioida tiedostoon ja antaa sille nimeksi "monista" sekä antaa ajo-oikeudet.
Toinen komentorimpsu mahtui helposti yhdelle riville. Se kopioi *.txt halutun hakemistopuun kaikkiin "lehtiin". Tältä se näyttää:
find /kohdepolku -type d -links 2 | xargs -n 1 cp *.txt
Tuossa /kohdepolku korvataan hakemistopolulla josta alaspäin scripti etsii vain polkujen latvahakemistot ja kopioi niihin. Tunnistus perustuu siihen että hakemiston alla ei ole enää uutta hakemistoa. Ylläolevassa tapauksessa se olisi "/opt/softa".
Kopioi vain oletushakemistosta eli täytyy mennä "cd": n avulla ensin hakemistoon jossa nuo tekstit ovat.