標籤:移動硬碟 linux 伺服器 檔案夾 parent
問題:我伺服器中有些資料需要find出來拷貝到移動硬碟中,並保持原目錄結構,find ./ -name ‘*‘ -exec cp -v --parents {} /mnt \; 我是這樣寫的,./下的子目錄會在/mnt中建立,有個問題就是我需要在/mnt/中建立的子目錄裡另建一個目錄data,然後把子目錄中的資料放到子目錄下的data檔案夾裡,最後就是 /mnt/建立的子目錄/data/原子目錄的資料,請問這樣用shell指令碼怎樣實現,小弟菜鳥,望高手指教。
你可以分成兩次find操作嘛,一次建立目錄,第二次用個迴圈拷貝資料。比如:第一次: find ./ -name ‘*‘ -type d -exec cp -v --parents {} /mnt \;第二次:for dir in /mnt/*;dofind ./${dir} -name ‘*‘ -type f -exec cp -v --parent {} /mnt/${dir} \;done
追問:
abcd12234,你好,因為我也是剛接觸linux,只懂些基礎命令,shell指令碼什麼的完全不懂,這兩個命令可以放在一個檔案裡執行嗎?怎麼實現幫我寫個指令碼吧,謝謝了
追答:
#!/bin/bashfind ./ -name ‘*‘ -type d -exec cp -v --parents {} /mnt \;for dir in /mnt/*;dofind ./${dir} -name ‘*‘ -type f -exec cp -v --parent {} /mnt/${dir} \;done直接把兩條命令放到一塊然後丟進某個檔案就行,最上面那個注釋是shebang行,用來告訴bash這個程式需要那個程式來解釋可以給它添加可執行許可權sudo chmod +x ./filename執行:./filename
追問:
你好,我試了,第一個命令find ./ -name ‘*‘ -type d -exec cp -v --parents {} /mnt \; 好像哪裡出錯了,取不到目錄結構,怎麼能先把要尋找檔案所在的目錄結構複製下來暫時不複製檔案?就像你說的第一步先複製檔案所在的目錄結構,第二部在複製檔案到裡面,求教。
追答:
你只要目錄結構的話那就把 -exec開始的都去掉就行了,就是只執行:find ./ -name ‘*‘ -type d
本文出自 “江湖笑笑生” 部落格,請務必保留此出處http://hashlinux.blog.51cto.com/9647696/1791567
linux資料拷貝複製到移動硬碟的問題