Board logo

标题: UNIX系统操作入门篇(3) [打印本页]

作者: 柔肠寸断    时间: 2009-7-17 10:13     标题: UNIX系统操作入门篇(3)

Unix的系统和dos有一个不同的地方,在dos里copy一个文件是不会改变它的文件修改时间 的,除非你确实那样做了。在Unix里不同,它要改你的时间,或许它认为cp也是一种修改吧。 当你加上-p以后就不会改时间了。

用惯Dos的人或许会对下面的一行命令大惑不解:

cp file1 file2 file3 dir_dest 这条命令把file1,file2,file3三个文件一起复制到/dir_dest里去。

好了今天就讲到这里,最后留一个思考题,请说明一下下面一行命令的作用,请不要用Dos 的思考方式。我们下个星期再见。

思考问题,请说出以下命令的作用:

cp file1+file2 file3

cp
上个星期我提出的问题你能解吗?实际上以下命令的意义是这样的:

cp file1+file2 file3

表示将一个名字为file1+file2的文件拷贝成file3。而不是在dos里的将file1和file2加在一起拷贝成文件file3。在unix的文件系统里,文件名字可以到255或254个字符,具体要看你到底使用那种类型的

Unix。

cat

这个命令可不是“猫”的意思,而是catenate的缩写。顾名思义,是把东西串起来。比如:

cat file1 file2

就是把文件file1和file2连在一起,然后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。如果要改变它的输出方向,就必须使用Unix系统的输出重定向符“>”

>

输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix里的用法同Dos的区别不是很大。但比较不同的地方是,Unix系统将任何的一个外设都认同为一个文件。所以如果你要将输出重定向到打印机之类的地方,只要写上代表打印机的设备文件名。前一将里我们曾讲过终端机器名,它也是一个文件。比方我的设备机器是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就可以了

ls -a-u-F >ttyb

这充分利用了Unix系统多用户的设计思想。

同样的使用ls -a-u-F>file1就是将当前目录列表输出到file1中。

又比如:

cat file1 file2>file3

就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1+file2 file3

当你用'>'来输出重定向的时候,系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。比如:

cat file1 file2>file3

系统先将file3的内容清空。所以:

cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:

cat file2>>file1

">>"表示追加,而不是先清空file1中的内容。
作者: wuyunian    时间: 2010-3-4 16:21

goooooooooooooooooooooooooooooooooooooood!




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2