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就是将当前Unix操作系统目录列表输出到file1中。
又比如:cat file1 file2>file3
就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1+file2 file3
当你用'>'来输出重定向的时候,Unix操作系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。
比如:
cat file1 file2>file3
系统先将file3的内容清空。所以:cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的 内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:cat file2>>file1,">>"表示追加,而不是先清空file1中的内容。
Unix常用命令cat命令格式参数
命令:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3
比如:cat file1 file2
就是把文件file1和file2连在一起,然后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。如果要改变它的输出方向,就必须使用 Unix操作系统系统的输出重定向符">",">"输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix操作系统里的用法同 Dos的区别不是很大。但比较不同的地方是,Unix操作系统系统将任何的一个外设都认同为一个文件。
所以如果你要将输出重定向到打印机之类的地方,只要写上代表打印机的设备文件名。前一章里我们曾讲过终端机器名,它也是一个文件。
比方我的设备机器 是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就可以了ls -a-u-F >ttyb。这充分利用了Unix操作系统系统多用户的设计思想。
同样的使用ls -a-u-F>file1就是将当前Unix操作系统目录列表输出到file1中。
又比如:cat file1 file2>file3
就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1+file2 file3
当你用'>'来输出重定向的时候,Unix操作系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。
比如:
cat file1 file2>file3
系统先将file3的内容清空。所以:cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的 内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:cat file2>>file1,">>"表示追加,而不是先清空file1中的内容。
Unix常用命令cat命令格式参数
命令:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3
展开全部
楼主你好!
上面两个命令,也就是>重定向和>|重定向,仅仅当参数noclobber被设置之后才有区别;否则,两个命令效果等同,都是把文件file1和file2的内容加到file3文件中去,如果file3事先不存在,会被新建,如果flle3事先已经存在,会被覆盖。
当noclobber参数设置后,对于第一个命令,也就是>重定向,如果file3文件不存在,会新建file3文件,如果file3已经存在,会提示错误,显示无法覆盖已经存在的文件;对于第二个命令,也就是>|重定向,如果file3文件不存在,会新建file3文件,如果file3已经存在,会被覆盖。
也就是说,设置bash环境中的noclobber参数,可以用来防止>重定向时已有的文件不小心被覆盖,但不能防止>|重定向的覆盖。
设置noclobber参数的命令是:
set -o noclobber
取消设置noclobber参数的命令是:
set +o noclobber
上面两个命令,也就是>重定向和>|重定向,仅仅当参数noclobber被设置之后才有区别;否则,两个命令效果等同,都是把文件file1和file2的内容加到file3文件中去,如果file3事先不存在,会被新建,如果flle3事先已经存在,会被覆盖。
当noclobber参数设置后,对于第一个命令,也就是>重定向,如果file3文件不存在,会新建file3文件,如果file3已经存在,会提示错误,显示无法覆盖已经存在的文件;对于第二个命令,也就是>|重定向,如果file3文件不存在,会新建file3文件,如果file3已经存在,会被覆盖。
也就是说,设置bash环境中的noclobber参数,可以用来防止>重定向时已有的文件不小心被覆盖,但不能防止>|重定向的覆盖。
设置noclobber参数的命令是:
set -o noclobber
取消设置noclobber参数的命令是:
set +o noclobber
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询