講解Unix操作系統(tǒng)cat知識
大家都對Unix操作系統(tǒng)很熟悉,他的一些知識,想必我們都掌握了不少,那么我們來看看以下問題,你是否知曉呢!思考問題,請說出以下命令的作用:cp file1+file2 file3
cp 上個星期我提出的問題你能解嗎?實際上以下命令的意義是這樣的:cp file1+file2 file3
表示將一個名字為file1+file2的文件拷貝成file3。而不是在dos里的將file1和file2加在一起拷貝成文件file3。在Unix操作系統(tǒng)的文件系統(tǒng)里,文件名字可以到255或254個字符,具體要看你到底使用那種類型的Unix操作系統(tǒng)。
[cat]
這個命令可不是“貓”的意思,而是catenate的縮寫。顧名思義,是把東西串起來。比如:cat file1 file2
就是把文件file1和file2連在一起,然后輸出到屏幕上。注意,輸出到屏幕上是cat的自定義目的。如果要改變它的輸出方向,就必須使用Unix操作系統(tǒng)系統(tǒng)的輸出重定向符">",">"輸出重定向符。稍微高級一點的dos用戶都知道這個符號。在Unix操作系統(tǒng)里的用法同Dos的區(qū)別不是很大。但比較不同的地方是,Unix操作系統(tǒng)系統(tǒng)將任何的一個外設(shè)都認(rèn)同為一個文件。
所以如果你要將輸出重定向到打印機之類的地方,只要寫上代表打印機的設(shè)備文件名。前一章里我們曾講過終端機器名,它也是一個文件。比方我的設(shè)備機器是ttya,而小李的設(shè)備機器是ttyb,他想讓我把當(dāng)前目錄的內(nèi)容給他看。那么用這條命令就可以了ls -a-u-F >ttyb。這充分利用了Unix操作系統(tǒng)系統(tǒng)多用戶的設(shè)計思想。
同樣的使用ls -a-u-F>file1就是將當(dāng)前Unix操作系統(tǒng)目錄列表輸出到file1中。
又比如:cat file1 file2>file3
就是將文件file1和file2的內(nèi)容輸出到file3中。在Dos里這條命令被寫成copy file1+file2 file3
當(dāng)你用'>'來輸出重定向的時候,Unix操作系統(tǒng)馬上打開一個空文件來準(zhǔn)備存放'>'之前那個文件命令的輸出結(jié)果。比如:
cat file1 file2>file3
系統(tǒng)先將file3的內(nèi)容清空。所以:cat file1 file2>file1這條命令將產(chǎn)生一個錯誤提示。也許這條命令的本意是增加file1里的內(nèi)容,但在系統(tǒng)初始這條命令的時候就把file1里的內(nèi)容清空了。所以你得到一個錯誤提示。如果要追加文件內(nèi)容請使用以下命令:cat file2>>file1">>"表示追加,而不是先清空file1中的內(nèi)容。
上面講的是Unix操作系統(tǒng)輸出重定向,還有輸入重定向。這個留在以后講。
【編輯推薦】