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

2021-03-27 11:22:05 字數 1520 閱讀 2386

1樓:匿名使用者

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項的檔案,那麼直接複製該檔案就相當於硬鏈結的工作方式。這不是任何人想要的。

2樓:匿名使用者

r recursive,遞迴

那為什麼win中誰都可以刪除檔案和資料夾,linux中就不可以呢。

3樓:匿名使用者

這個也不好說,這是人為的設定。就像為什麼windows要叫windows一樣。不過個人理解這應該是為了安全,在不使用-r引數時避免因為操作失誤導致覆蓋了原有檔案吧。

中山陵的設計者是,中山陵的設計者是?

中山陵的設計者是中國近代青年設計師呂彥。呂彥直,安徽滁縣 今滁州市 人,籍貫安徽滁縣 今滁州市 曾祖父起由山東東平遷居滁縣 今滁州市 中國近代傑出的建築師。由呂彥直主持設計 監造的南京中山陵和廣州中山紀念堂,都是富有中華民族特色的大型建築組群,是中國近代建築中融匯東西方建築技術與藝術的代表作,在建築...

水立方的設計者是誰,鳥巢和水立方的設計者是誰

水立方 的中方設計者 中建國際 深圳 設計顧問 總裁 總建築師趙小內鈞 總工程容師毛紅衛。膜結構的完美體現 水立方 膜結構建築是21世紀最具代表性的一種全新的建築形式,至今已成為大跨度空間建築的主要形式之一。它集建築學 結構力學 精細化工 材料科學與計算機技術等為一體,建造出具有標誌性的空間結構形式...

linux中的logout命令linux命令中logout和exit有什麼區別?

登出系統的logout命令 logout 登出是登陸的相對操作,登陸系統後,若要離開系統,使用者只要直接下達logout命令即可 root laolinux root logoutred hat linux release 9 shike kernel 2.4.20.8 on an i686laol...