linux mv 命令中斷的解決辦法


背景:使用mv對服務器文件進行遷移的過程中,因為網絡中斷,所以遷移到一半被停止了。

現狀:有一部分文件沒有遷移完,但是文件夾已經存在了,重新mv提示文件夾已經存在,切已經有文件,所以不能刪除

重點提示:如果遠程遷移服務器上的文件或者其他耗時較長的的命令,一定要加在命令的最后加 & 字符。讓命令在后台運行,這樣就算本地到服務器的網絡中斷了,命令也不會被中斷

解決方法:
在網上找了資料,發現沒有能直接簡單復制的方法,所以用以下兩條命令進行剩余文件的遷移

cd /trans/data/smb
#/trans/data/smb表示待遷移文件所在的源目錄,之所以要進入這個目錄執行命令,是因為find進行查找的時候,使用相對路徑的話,后續能直接拼接到目標目錄

find ./ -type f > /tmp/tmp_20220115.txt
#查看當前目錄還有哪些文件待遷移的,然后寫入臨時文件

while read i; do mv "$i" "/data/smb/$i"; done < /tmp/tmp_20220115.txt
#讀取臨時文件中的文件列表,逐個文件進行遷移
#用while循環是因為文件中會有空格,如果用for的話,會將類似Red Hat這種文件夾拆分成Red和Hat,不符合實際的情況
#如果遷移過程中報錯目錄不存在的,執行mkdir -p 《目錄的絕對路徑》命令創建目錄后重新執行遷移命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM