find cp文件夾
客戶有個需求,要找到以他們的企業ID命名的文件夾裏的所有文件,並且保留原先完整的路徑,因為完整路徑已經寫到了數據庫裏。
1. 命令
# find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {} /mobilehd
//上述命令表示為,查找名稱為20001371的文件夾,並將其以保留完整路徑的方式拷貝到移動硬盤掛載目錄/mobilehd下。
// --parents為cp命令的參數,表示拷貝全路徑。
2. 一般拷貝文件需要長時間運行,所以考慮到運行命令後終端經常被結束掉,導致拷貝被終止的情況,筆者有以下解決方法。
- crontab計劃任務,但是要註意精確到分時日月周的每一項或者及時刪除和註釋,防止重復執行,操作比較復雜。
- at臨時計劃任務,操作簡單。
- nohup後臺運行方式(推薦項),操作簡單。
linux下命令以‘&‘結尾的時候表示後臺運行,但是當終端關閉後此程序將被終止,所以我們要使用nohup(當終端關閉後不掛起該命令)。
所以我們將命令優化為:
nohup find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {} /mobilehd &
但是有個註意事項:
有時候使用nohup會有問題,當把終端暴力關閉後,進程會自動被關閉。
所以操作的時候使用以下順序來確保進程不被中斷。
① 輸入命令:nohup find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {} /mobilehd &
②敲‘回車鍵‘
③輸入exit退出終端
?
find cp文件夾