Linux中,dd和cp的區別是什麼

2021-03-19 18:28:25 字數 6101 閱讀 7435

1樓:妮淺笑

cp 就是複製檔案和目錄。有使用軟/硬連結的選項,保持許可權的選項,失敗時刪掉目標再重試的選項,目標存在時詢問的選項,等等。但是怎麼寫資料它自己說了算,不給你多少選項。

dd 是把資料從一個檔案寫到另一個檔案,不支援多個檔案和目錄。只管資料,不管檔案本身的各種屬性和特性。寫資料時它可以指定進行轉換、從指定位置開始、指定每次寫的大小(塊大小)、指定寫入多少塊,等等。

unix / linux命令與dos命令有什麼不同

2樓:驚喜不斷

常見unix/linux命令與dos命令的一些不同:

顯示檔案目錄命令ls(dos下為dir)

在linux中用ls命令顯示檔案及目錄(當然,你仍然也可用dir命令,只不過在這裡的引數不同)。例如:#ls

root mnt boot dev bin usr xiong tmp etc games

看起來似乎簡單(就相當於dos中的「dir/w」),但你會發現你看到的有些難懂,連哪些是目錄哪些是檔案都不清楚,哪些又是可執行檔案呢?不要 緊,請輸入:#ls -f+root/ mnt/ boot/ dev/ bin/ usr/ xiong* tmp/ etc/ games / readme

看清楚了吧,帶*為可執行檔案(相當於dos中的exe和***檔案),帶/為子目錄,其它的為通用檔案。另外,我們可用ls -l顯示檔案目錄的詳細情況(相當於dos中的dir命令)。千萬注意區分大小寫!!

如ls -f;ls等都是錯誤的。另外,ls命令還有許多引數,你可以用man ls或ls--help去進一步瞭解。

改變當前目錄命令cd(dos(unix)下為cd)

在dos中,我們可以用c:>cd mntcdrom或cd mntcdrom

c:mntcdrom>cd ..或cd..或cd..

c:mnt>cd或c:mnt>cd

而在linux中為cd /mnt/cdrom,目錄名的大小寫必須與實際相同,cd後必須有空格。

pwd 顯示當前目錄

cd .. 必須為小寫,必須有空格

cd / 總目錄為/,cd與/? 有空格

建立子目錄mkdir(dos下為md或mkdir)

在linux中只能用mkdir,可用相對路徑和絕對路徑,請比較:

c:>md xiong或md xiong或mdxiong

dos系統

[root@localhost /]#mkdir xiong或mkdir /xiong

linux系統

刪除子目錄命令rmdir(dos下為rd)

在linux中用rmdir命令刪除子目錄,例如:

rmdir /mnt/cdrom 相當於rd mntcdrom

注意:同dos一樣,要刪除的子目錄必須是空的,而且必須在上一級目錄中才能刪除下一級 子目錄。

刪除檔案命令rm(dos下為del或earse)

在linux中用rm命令刪除檔案,例:

rm /ucdos.bat 相當於del ucdos.bat

檔案改名命令mv(dos下為ren或rename)

在linux中用mv命令給檔案改名,例:

mv /mntfloppy p相當於 ren mntfloppy p

說明:在linux中的mv命令除了檔案改名外,還有檔案移動的功能,請看例子:

mv /mnt/floppy /bin 相當於dos中的命令 move mntfloppy in

檔案複製命令cp(dos下為copy)

在linux中用cp命令進行檔案複製,例:

cp /ucdos/* /fox 相當於copy ucdos*.* fox

注意:dos中的*.*在linux中用*代替。

獲取幫助資訊命令man(dos下為help)

在linux中用man命令獲取幫助資訊,例:

man ls 相當於help dir

ls --help 相當於dir/

顯示檔案的內容less(dos下為type)

在linux中用less命令進行檔案顯示工作,例如,我們要顯示man1子目錄下的mwm.lx的內容,只需輸入:[root@localhost man1]#less mwm.

lx即可。在linux中,我們也可用另外一個命令「more」來顯示檔案內容,例如:more mwm.

lx。你會看到,這兩個命令非常相似,實際上,less命令的功能要比more強一些,你可以自己去摸索。在linux中,還提供了兩個dos中 沒有的閱讀檔案的命令,它們是head和tail命令,分別用來顯示檔案的頭部和後部的部分內容。

使用格式為:head(tail) [m],預設n時,顯示10行,例如:

head /usr/man/mwm.lx 顯示檔案mwm.lx前10行的內容

head 15 /usr/man/mwm.lx 顯示檔案mwm.lx前15行的內容

tail 17 /usr/man/mwm.lx 顯示檔案mwm.lx後17行的內容

重定向與管道

在dos中,我們可以通過重定向與管道方便地進行一些特殊的操作,如:dir>direct將當前目錄放入檔案direct 中;type readme>>direct,將檔案readme的內容追加到檔案direct中;又如:type readme.

txt|more,分頁顯示文字檔案readme.txt的內容。在linux中的重定向與管道操作同dos中的操作幾乎一樣,上面兩個例 子在linux中應為:

ls>direct; less readme.txt|more(注:實際上,linux中的more和less命令本身具有分頁功能)。

外殼程式(shell):命令直譯器(***mand)

在dos系統中,我們絕大多數使用者都是用的***mand.***這個命令直譯器。當然,你也可換用norton或dos4.

0以後的 dosshell。在linux中,有好幾種shell。常見的有:

ash,bash,ksh,tcsh,zsh等,從上面的環境變數中 shell=/bin/bash可以看出你用的是哪種shell,它位於何處。計算機預設的一般是bash。

一般來說,我們所接觸到unix、gnu/linux的命令應該是bash、bsh、csh之類的shell上的命令,而dos則直接是dos介面了。shell是位於作業系統的介面部分,各種shell之間的語法存在著差異,不過最終執行能力是大概一致的——其中稍微的差異在於shell之間對人類給予的命令的翻譯質量了——比如說一個使用者給予命令本身一個shell把它翻譯成了需要15ns才能執行完的指令給核心,而另一個shell把它翻譯成需要10ns才能執行完的指令給核心。

3樓:手機使用者

// 理論部分

作業系統本質上是提供使用者的自然活動(敲鍵盤、用滑鼠、聲音控制等)與機器的自然活動(電位變化、把訊號數字化、把訊號模擬化等)進行互相翻譯的一層軟體。通俗一點可以理解作業系統結構分為,真正調控硬體的核心部分和翻譯人類輸入的東西(打孔帶啦、鍵盤輸入進去的字元之類的)的介面部分。一般來說,我們所說的命令是指介面上的,基於字元的,能被介面翻譯給核心以執行任務的字串。

unix、gnu/linux、dos(這裡我假設樓主詢問的是disk operating system,而非windows圖形介面下模擬出來的dos介面,不過在命令的使用上兩者是等價的)的命令體系是根據實際經驗和狀態機的理論分析設計出來的。所以,就完成使用者要完成的任務(job)來說,三者的能力應該是等同的。

不過,在核心設計上,unix、gnu/linux是多使用者多工系統,而dos則不是。因此,表現在介面上,在多執行緒、安全、使用者管理等方面,dos的命令體系能力不足、甚至沒有能力。

// 實際部分

一般來說,我們所接觸到unix、gnu/linux的命令應該是bash、bsh、csh之類的shell上的命令,而dos則直接是dos介面了。shell是位於作業系統的介面部分,各種shell之間的語法存在著差異,不過最終執行能力是大概一致的——其中稍微的差異在於shell之間對人類給予的命令的翻譯質量了——比如說一個使用者給予命令本身一個shell把它翻譯成了需要15ns才能執行完的指令給核心,而另一個shell把它翻譯成需要10ns才能執行完的指令給核心。所以,在實際上,我們可以直接使用shell和dos介面直接比較。

基於我的使用經驗,shell和dos的命令差別主要在:

1,shell區分大小寫,dos不區分大小寫;

2,一般而言,shell的命令的開關可以簡寫(比如說「-a -l「可以簡寫為「-al「),而dos的則不允許;

3,在指令碼編寫上的語法差別極大,比如說:兩者的流程控制語句語法不同,變數的語法不同等;

4,shell可以在unix、gnu/linux和win下(cygwin bash shell)工作,dos則還沒有聽說過能在win/dos以外的系統中工作;

5,shell原生支援正規表示式,dos則不是。

4樓:火箭吧某人

沒有相同之處,dos才幾個命令,有200個麼。linux下命令動輒幾千上萬,所有非圖形操作都在命令列下完成,非常方便。

5樓:匿名使用者

個成一個體系,windows下不講究命令列

6樓:醉暮天

根本就沒有相似的地方。就像鉛筆芯和鉛一樣,一個是石墨一個是金屬。

只是看起來都是用命令執行的,其實沒有什麼關係,完全是兩個體系,根本不沾邊。

7樓:

linux命令更多,更強。

回答者: abc22048 聖誕小禮帽 | 十一級 | 2011-1-9 14:51 | 檢舉

再加一個:更靈活

8樓:匿名使用者

linux命令更多,更強。

linux中cp命令的設計者為什麼要在拷貝目錄時用-r引數?

9樓:匿名使用者

why is -r recursive necessary

在檔案系統工作的方式中,目錄實際上不是包含檔案的資料夾,而是包含連線到它的「子」檔案的inode指標的檔案。這意味著,從檔案系統的角度來看,檔案是一個檔案,但是目錄只是一個包含連線檔案列表的檔案。

因此,從命令列的角度來看,這樣做:

$ cp dir1 copydir1

基本上意味著將名為dir1的檔案複製到名為copydir1的新檔案。就檔案系統而言,dir1只是一個檔案;只有當檔案系統真正檢查dir1以檢視那一堆位的實際情況時,它才是「目錄」這一事實才會顯現出來。

r標誌告訴檔案系統遞迴地滾動檔案/目錄樹,並將任何&所有可能是該檔案的「子」的內容複製到新的位置。

至於為什麼這看起來是多餘的或冗餘的,這實際上可以歸結為處理檔案系統的歷史方法。以及建立一個系統,使其不受所有型別的使用者相關錯誤的影響;偶然的和有意的。

意思是,假設你有一個~/bin檔案在你的主目錄中,你想複製,但不小心漏掉了~——因為你是人,會犯錯誤——所以它是這樣的/bin:

cp /bin/ ~ / copy_of_bin

由於/bin的「安全網」是一個目錄,並且需要-r標誌,您可以避免意外地將系統的整個二進位制根複製到主目錄中。如果這個安全網不存在,就會發生一場小的——或者可能是大的——災難。

這裡的邏輯是,在前gui(圖形使用者介面)的時代,邏輯/行為約定需要被設定,以避免使用者建立可能導致系統死亡的錯誤。使用-r標誌是其中之一。

如果這看起來是多餘的,那麼只需看看現代gui系統,就可以將其置於linux檔案系統之上。gui通過允許輕鬆地拖放檔案和目錄來解決基本的使用者問題。

但在基於文字的介面領域中,該領域中的許多「使用者體驗」基本上都是基於邏輯的、基於hueristicl的障礙,這些障礙有助於控制使用者,從而避免潛在的災難。

同樣,這也是為什麼linux/unix檔案系統沒有預設設定的777許可權和sudo許可權,以及當使用者設定777許可權或授予所有人sudo許可權時,真正的系統管理員會畏縮不前的原因。這些是確保系統穩定和儘可能「使用者證明」的基本工作;任何急於縮短這些慣例的人都很可能在不知情的情況下對他們的系統造成損害。

附加資訊:unix堆疊交換站點上的另一個答案很好地解釋了為什麼目錄的非遞迴副本存在問題;重點是我的。

嗯,沒有-r標誌,只能複製檔案,因為不太常見的情況是,有人想非遞迴複製一個目錄:非遞迴複製只會導致目錄的第二個名稱,直接指向相同的目錄結構。因為這很少是人們想要的,實際上有一個單獨的程式來做這個(ln),不允許目錄的非遞迴副本。

因此,如果一個目錄實際上是一個包含inode項的檔案,那麼直接複製該檔案就相當於硬連結的工作方式。這不是任何人想要的。

linuzip和gzip的區別,linux zip和gzip的區別

zip是將檔案打包為zip格式的壓縮檔案 gzip是將檔案打包為tar.gz格式的壓縮檔案unzip是從zip包中解壓出某個檔案 gunzip從tar.gz包中解壓出某個檔案locate命令和find命令都用於查詢檔案,locate比find命令的搜尋速度快,它需要一個資料庫,稱為 索引 這個資料庫...

cc中null和null的區別是什麼

c語言和c 對大小寫是敏感的,也就知是說null和null是區別對待的。null 如已巨集定義 代表空地址,null 如沒巨集定義 只是一個符號。1 其實null和null都是字串,具體看它們巨集定義被定義成為什麼值。2 在vs中null被定義為0,因為習慣上把巨集定義的所有字元都大寫,當把null...

英語中gold和golden的區別是什麼

gold是形象性形容詞,表示 質的 比如gold metal金牌 golden是抽象性形容詞,表示 般的 比如 golden heart金子般的心 gold a gold mine 金礦 gold dust 金粉 golden a golden crown金皇冠 golden hair 金髮 a g...