① linux C系統編程中的文件傳輸問題:只能傳送文本文件,不能傳送二進制文件。(TCP+文件I/O實現)
二進制模式傳輸文本文件沒有問題,但是ASCII模式傳輸二進制文件會出問題
因為有些控制字元會被錯誤處理。比如二進制文件中的0,在傳輸的時候會被當作字元串結束符,這樣是無法傳送的。所以傳輸二進制文件的時候狀況與文本文件是不一樣的。
② 在Linux中,要將指定源文件復制到目標文件,但不覆蓋原有文件時,需使用( )命令。
【答案】:C
本題考查Linux文件系統的基本知識。在Linux系統中,文件復制命令cp。cp命令的功能是把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。如同 DOS下的 命令一樣。cp命令的一般格式是:
Cp [-選項] source fileName | directory dest fileName | directory
重要選項參數說明如下。
? -a: 整個目錄拷貝。它保留鏈接、文件屬性,並遞歸地拷貝子目錄。
? -f: 刪除己經存在的目標文件而不提示。
? -i: 和 f 選項相反巧改,在覆蓋目標文件之前將給出提示要求用戶確認。回答 y 時目 標文件將被覆蓋,是互動式滾寬哪拷貝。
? -p: 除復制源文件的內容外,還把其修改時間以及訪問許可權也復制到新文件中。
? -R:若給出的源文件是一目錄文件,將遞歸復制該目錄下所有的子目錄和文件 。
此時目大碼標文件必須為一個目錄名。
? -l: 不作拷貝,只是鏈接文件。
③ linux下mv 多個文件到各自文件夾,如何操作
你這個問題主要是mv的用法了,我簡單說一下:
1. mv可以把多個文件移動到一個文件夾(目錄)裡面,比如:有a b c三個文件,一個目錄d,用下面命令就能將a b c移動到d中
$ mv a b c d
需要注意的是,目錄d必須在最後面,而且它前面不能再出現其他目錄
2. 也可以使用帶選項的mv命令,把多個文件移動到一個目錄中,如
$ mv a b c -t d
$ mv -t d a b c
其中,-t後面緊接著的就是要移動到的目錄,並且不能有多個目錄出現
3. 如果出現了多個目錄,比如下面的命令
$ mv -t adir a -t bdir b
mv: multiple target directories specified
會出現上面的警告,且只執行了前面正確的那部分,即只是將a移動到了adir,後面的沒執行
4。如果你的文件和目錄名稱有一定的關系,你的問題可以通過腳本來解決,當然,腳本的具體內容也要視具體情況而定
假設有文件a b c,希望將a移動到adir,將b移動到bdir,將c移動到cdir,那麼就可以這樣來做
寫一個簡單shell腳本:move.sh
# FileName move.sh
#!/bin/bash
mv $1 "$1dir"
$ chmod +x move.sh
然後,
$ find . -type f | xargs -n 1 ./move.sh
執行完畢之後,就發現
$ tree
.
|-- adir
| `-- a
|-- bdir
| `-- b
即實現了將a移動到adir,b移動到bdir,c移動到cdir了。
所以,總得來說,你的具體問題還要具體分析才好。當然,如果你的情況正是我上面說的,那麼,就用這種方法就OK了
希望對你有所幫助:)
④ linux下子目錄下的文件對根目錄復制移動的命令
Linux復制命令:cp、移動命令:mv,通過案例介紹下:
1.把A目錄下的.txt文件復制到根目錄下的B
[root@localhosttest]#sudocp/A/.txt/B
2.把A目錄下的C目錄復制到根目錄下的B
[root@localhosttest]#sudocp-R/A/C/B
#-R參數,遞歸操作,把C目錄下所以文件全部復制過去
3.把A目錄下的.txt文件移動到根目錄下的B
[root@localhosttest]#sudomv/A/.txt/B