免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6355 | 回复: 0

UNIX下format和tar易用性的一种改进方法 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2008-04-07 15:48 |显示全部楼层

  出处:Unix爱好者家园unix-cd.com   
接触过UNIX的人都知道,在shell提示符下,用户可以同UNIX核心进行对话。shell的作用类似于早期的DOS下COMMAND.COM程序,但其内容较COMMAND.COM丰富得多。shell还是一种程序设计语言。利用UNIX OS本身的shell对UNIX命令加以改进,就是其中的一种方法。本文以format和tar两条命令为例进行了尝试,发现这种方法简单且实用。
一、格式化命令format的改进
format命令格式:format[-n][-v][-f][-q][device][-i interle
ave]
1.改进前的一般使用方法
$format /dev/rfd0135ds18 〈Enter〉
/* 对A盘进行格式化 */
$format /dev/rfd196ds15 〈Enter〉
/* 对B盘进行格式化 */
$format 〈Enter〉/* 对/etc/default/format文件中定义的缺省盘进行格式化 */
2.用Bourne shell对format进行改进
$cat fdformat 〈enter〉
getyn() /* shell函数 */
{
while read yn
do
case $yn in
[yY]) return 0;;
[nN]) return 1;;
*) break;;
esac
done
}
fd() /* shell函数 */
{
echo 请输入软盘的规格:\(0-代表1.44MB\)\(1-代表1.2MB\): "
\c"
read floppy
if test $floppy -eq 0
then DEVICE=/dev/rfd0135ds18
FD=A
else DEVICE=/dev/rfd196ds15
FD=B
fi
}
fd
clear
echo "请将软盘插入$FD驱动器中,准备好后按回车键!!"
while
getyn
do
format $DEVICE
echo " ******还需格式化下一张软盘(y/n)? \c"
done
$ sh -v fdformat 〈Enter〉
/* 对shell程序的全部执行过程进行跟踪 */
$ chmod u+x fdformat 〈Enter〉
/* 将fdformat成为可执行的命令 */
改进后的fdformat命令的使用易用性强,只需在提示符下键盘输入fdformat并回车,再按提示进行操作即可,而且还能连续进行格式化操作。
二、文件归档命令tar的改进
tar命令格式:tar[key][files]
常用的key值有:x、c、u、t、v、n、f、w等。
1.利用tar显示软盘信息
(1) 改进前的一般使用方法
$ tar tvnf /dev/rfd0135ds18 〈Enter〉
/* 显示A驱动器信息 */
$ tar tvnf /dev/rfd196ds15 〈Enter〉
/* 显示B驱动器信息 */
通过/ect/default/tar文件的定义,上述命令还可按下列方法进行:
$ tar tv6 〈Enter〉
$ tar tv3 〈Enter〉
总之,要使用好tar命令,必需记住x、c、u、t、v、n、f等选择项。
(2)用Bourne shell对tar命令进行改进
$ cat dirfd 〈Enter〉
fd
echo "请将软盘插入$FD驱动器中,关好小门!!"
sleep 2
clear
tar tvnf $DEVICE
sleep 5
$ sh -v dirfd 〈Enter〉
$ chmod u+x dirfd 〈Enter〉
改进后,无需再详记选择项。
2.利用tar命令读写磁盘
(1)改进前的一般使用方法
$ pwd 〈Enter〉
/usr/jinning
$ tar uvnf /dev/rfd0 unixtext 〈Enter〉
/* 将当前目录下的unixtext写到A驱动器中 */
$ tar xvnf/dev/rfd0 〈Enter〉
/* 将软盘内容读到当前目录 */
(2)用Bourne shell改进
$ cat writefd 〈Enter
echo 按回车键后继续……
while getyn
do
clear
echo 现在的工作目录是:′pwd′
echo
echo 输入待拷备的路径和文件名\(如:\/usr\/bd1996\):"\c"
read file
echo
fd
echo 正在写盘,请稍候……
tar uvnf $DEVICE $file
echo
echo
echo "****拷备结束!继续吗?(y/n)\c"
done
$ sh -v readfd 〈Enter〉
$ chmod u+x readfd 〈Enter〉
$ cat readfd 〈Enter〉
echo 当前工作目录为:′pwd′
echo
echo 将当前工作目录改变为:"\c"
read dir
cd $dir
echo
echo 当前目录已改为:`pwd'
echo
fd
echo 正在读盘,请稍候……
tar xvnf $DEVICE
echo ****拷贝完成!!!
sleep 1
echo
$ sh -v writefd 〈Enter〉
$ chmod u+x writefd 〈Enter〉


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_520205.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP