- 帖子
- 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中的内容。 |
|