一,需求為查詢文件名為ZRSH開頭的時間為7月至今的所有文件並打包
1.首先想到的就是find + xargs + cp 格式。。
find 2016073* -type f -name *ZRSH\* |xargs cp {} ./data/
執行之后發現說查詢出來的文件不是目錄,很訝異,於是直接執行find 2016073* -type f -name *ZRSH\* 文件都查詢出來沒有任何問題。。
2.猜測是cp 的時候有意想不到的問題發生。於是直接cp測試報文。發現文件名中存在空格,默認把空格后方的部分文件名當做目錄報錯了。
find 2016072* -type f -name *ZRSH\* -print |xargs cp {} ./data/ 執行說文件名過長
find 2016072* -type f -name *ZRSH\* -print |xargs -i cp {} ./data/
3. 執行后仍然報錯,發現cp 的時候根本沒法將文件中帶有空格的整合至一起。 單獨執行cp 時將帶空格文件名用雙引號括起來會直接執行。
find 2016072* -type f -name *ZRSH\* -print |xargs -i cp '{}' ./data/ 成功。。
4. tar 包
tar -zcvf data.tar.gz data