roboforum.ru

Технический форум по робототехнике.

linux mount script

linux mount script

Vooon » 12 ноя 2007, 00:05

линуксоиды подскажите как написать bash-скрипт.

задча:
есть папка содержащая iso-образы CD-дисков,
ножно рекурсивно их всеж подмоунтедь к соотв. папкам.

например:
есть образ: ./protheus7.iso
нужно замаунтить в ./mounted/protheus7/
содержимое образа.

как это сделать?

ПС: с bash я знаком поверхностно, очень желательны камменты.

Re: linux mount script

Strijar » 12 ноя 2007, 19:48

а рекурсивно то зачем?
Образов много? Может проще один раз прописать в fstab?

Re: linux mount script

Vooon » 13 ноя 2007, 01:55

нет, в фстаб писать бессмысленно, образов довольно много и могут появляться новые

идея в том, что в один каталог скидывают образы а в другом после запуска скрипта появляются каталоги с именами исошников и в них соотв образы замаунчены

вобщем алгоритм примерно такой:

1. получить список всех *.iso файлов из $src
2. перебирать список файлов:
2.1. создать каталог <имя образа> в каталоге $dst
2.2. umount "${src}/<имя образа>"
2.3. mount -O utf-8 "${src}/<имя образа>" "${dst}/<имя образа>"

Re: linux mount script

Strijar » 13 ноя 2007, 11:19

Ну вот ты все и написал ;) Вот те для "рыбы"

Код: Выделить всёРазвернуть
#!/bin/bash

for file in `find -type f -name "*.iso"` ; do
    name = `basename $file`
done


А дальше man bash и сам! ;)

Re: linux mount script

Vooon » 13 ноя 2007, 14:33

хе, я просто не достаточно знаю "книгу бэшей" :)
спасибд за рыбу, дальше все просто

Re: linux mount script

Vooon » 13 ноя 2007, 19:14

вот так написал:
Код: Выделить всёРазвернуть
#!/bin/bash

src=`realpath $1`
dst=`realpath $2`

cd $src
for file in `find -type f -name "*.iso"` ; do
   name=`basename ${file}`
   echo "${src}/${name} -> ${dst}/${name}/"
   umount "${src}/${name}"
   rm -rf "${dst}/${name}"
   mkdir "${dst}/${name}"
   mount -o loop "${src}/${name}" "${dst}/${name}"
   echo "iter '${name}' done"
done
echo 'done'


Rambler\'s Top100 Mail.ru counter