Next Previous Contents

5. The Script Files

下面这个script file是读了几个 Linux newsgroups 和很多 HOWTOs 与 manuals 之后写出来的.它们都是间接或直接从别人那里学习来的经验. 我非常感谢 newsgroups 里回答我问题的人和在网路上po(张贴)这些信息的人.

如果想要开始设定, 请使用你喜欢的 text editor 将下面的 script 设定一个名称并且保存起来.

5.1 如果你使用user登入


echo "Please enter a directory name for the pictures."
read DIRPATH
mkdir ~/picture/$DIRPATH
su -c "/sbin/modprobe usb-storage; mount -t vfat /dev/sda1 /mnt/camera;
/etc/rc.d/init.d/usb start;
mv /mnt/camera/dcim/100msdcf/*.jpg ~/picture/$DIRPATH;
umount /mnt/camera;
chown -R your_login_name ~/picture/$DIRPATH"

5.2 如果你使用root登入


echo "Please enter a directory name for the pictures."
read DIRPATH
mkdir picture/$DIRPATH
/sbin/modprobe usb-storage
mount -t vfat /dev/sda1 /mnt/camera
/etc/rc.d/init.d/usb start
mv /mnt/camera/dcim/100msdcf/*.jpg picture/$DIRPATH;
umount /mnt/camera
chown -R your_login_name picture/$DIRPATH

5.3 Make it Executable(让它可以执行)

当你用user登入时:


bash $dollar su -c "chmod a=r+w+x your_script_file_name"

当你用root登入时:


bash# chmod a=r+w+x your_script_file_name

5.4 script运行时都做哪些事

当你运行它时, 将以DIRPATH里的值来设定目录. 如果你的script_file_name = getcamJ,(J for getting the pictures with .jpg extensions) 指令的顺序看起来就像这样:


bash $ getcamJ
Please enter a directory name for the pictures.
bash $ something
Password: 
bash $  your root password

你必须以root权限来运行它. 所以 'su' 指令加上 -c 标致可以让你暂时拥有另外的权限执行指令然后又回到原来的状态. ""能使你执行多个指令, ;分号可以让一个指令执行后继续下一个指令.

/sbin/modprobe usb-storage: modprobe 将USB mass storage 模块和其它设备的模块挂进来. 主要是 SCSI driver. 确定在 /dev 有这些: sda0, sda1, sda2, sda3, sda4, sdb0, sdb1, sdb2, sdb3, sdb4. 如果你有其它 SCSI devices,请将sda1 进行正确的设定,可能是 sdb1.

将SCSI driver 载入: mount -t vfat /dev/sda1 /mnt/camera

运行 USB 程序: /etc/rc.d/init.d/usb start

将你的pictures 从 camera 移至你的硬盘机. mv 同时将camera上的pictures移除: mv /mnt/camera/dcim/100msdcf/*.jpg picture/$DIRPATH;

卸下你的 SCSI driver: umount /mnt/camera

指令: chown -R your_login_name picture/$DIRPATH 完成的时候, pictures的所有者是root/superuser, 因为你是以 root/superuser指行上述指令的(script当中使用了su指令). 当你以user权限访问它们的时候会有permission denied error的警告. 解决这个问题的办法是参考有关权限设定的manual.

在我的机器里, USB 或 SCSI 驱动程序是以模块的形式编译的. 所以 script file 也是假定你的系统和我的一样. 如果不是, 你将要做一些修改,请阅读有关的e manuals 和 HOWTOs. 或 向 Linux newsgroups 请教.


Next Previous Contents