|     
 帖子3852 积分13044 威望16780  金钱36761  在线时间1139 小时 
          
 | 
| 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中的内容。
 | 
 |