在线亚洲AV日韩AV综合AV,国产订精品电影,久久国产精品蜜

      <thead id="u9ncv"><del id="u9ncv"><rp id="u9ncv"></rp></del></thead>

        <thead id="u9ncv"></thead>

        <thead id="u9ncv"><s id="u9ncv"></s></thead>

          <strike id="u9ncv"></strike>
          <table id="u9ncv"><form id="u9ncv"></form></table>
        1. <strike id="u9ncv"></strike>
        2. 使用幫助 | 聯系電話:400-880-0256 0769-23037585 21686281

          在 Linux 中怎樣使用cp命令合并目錄樹

          作者:admin 發表于:2014-07-30 點擊:1116  保護視力色:

          怎樣將兩個布局相似的目錄樹合并成一個新的目錄樹?為理解該問題讓我們思考下面的例子。

          假設 dir1 和 dir2 目錄中分別有3個子目錄a,b和c.目錄布局如下所示:

          Layout of input directories 輸入目錄布局

          在目錄a,b和c中有一些文件,tree命令的輸出將能更好的說明:

          Layout of files 文件布局

          1. 使用cp命令創建合并:

          現在我們將這兩個目錄合并成一個名為"merged"新的目錄中.完成上述操作最簡單的方式就是遞歸復制目錄,如下圖所示:

          Copy directories recursively to create new merge 遞歸復制完成新的合并

          1.1 cp命令和替換帶來的問題:

          這種方式所帶來的問題是該合并目錄中所創建的文件為原文件的副本,并非原文件本身.別急, (你可能正在問自己) 如果不是原文件又有什么問題? 要回答你的問題,考慮下你有很多大文件的情況.那種情形下,復制所有的文件可能花費數小時。

          現在讓我們回到剛那問題上,且嘗試使用mv命令而不是cp命令。

          Attempt to merge with mv command 企圖使用mv命令進行合并操作

          這些目錄不能被合并.因此我們不能像這樣使用mv命令去合并目錄. 現在你該怎樣將原文件保存到"merged"目錄中?

          2. 解決方法:

          cp命令有一個非常有用的選項來幫助我們擺脫這種狀況. cp命令的-l 或 --link選項能夠創建硬鏈接而非原文件副本.讓我們嘗試一下。

          在我們嘗試cp命令的硬鏈接選項前,讓我們查看一下原文件的inode號碼. 可通過tree命令--inodes選項來查看inodes:

          Display inodes of original files 原文件的inodes

          現在我們有了inodes的列表,對于cp命令可通過--link選項創建硬鏈接:

          Merge directories with hard links 使用硬鏈接合并的目錄

          2.1 驗證文件:

          現在文件已經被復制,讓我們驗證一下inodes是否和原文件匹配:

          Verify Inodes Verify Inodes

          2.2 清除:

          正如你所看到的,這些文件的inodes和原文件的一樣?,F在問題已經解決,且原文件已被復制到合并目錄中.現在我們能夠移除dir1和dir2目錄。

          Remove original directories 移除原始目錄


          via: http://linoxide.com/linux-command/merge-directory-trees-linux/

          原文作者:Raghu

          譯者:hunanchenxingyu 校對:Caroline

          本文由 LCTT 原創翻譯,Linux中國 榮譽推出

          在线亚洲AV日韩AV综合AV,国产订精品电影,久久国产精品蜜