在備份ltedecoder程式時,須要把此資料夾拷由到bak資料夾下。但decoder資料夾下有個大檔案,不須要備份,還有日誌問題,也不須要備份,怎樣實現呢??
方法:
cd /source-dir
find . -name .snapshot-prune-o
-print0 | cpio -pmd0 /dest-dir
此段的意思是:當找到name為.snapshot時,prune就會返回真。-o是或的意思,「或」的使用技巧是當左邊的表示式為「真」時。則不會運算右邊的表示式。當左邊的表示式為假。則運算右邊的表示式,即,當左邊name不為.snapshot。則進行右邊的表示式,右邊的表示式意思是print檔名稱(包含路徑的);當找到name為.snapshot時,則不列印檔案名稱。這樣就實現了把非.snampshot為命名的檔案列印出來並交給cpio進行處理。cpio則把這些檔案拷則的dest-dir中,實現忽略.snampshot檔案的拷備(注:檔案指目錄或file名)。
拓展:
-prune -o ... -print0
「... -print0」
這裡能夠使用find的查詢檔案的引數。如-name,-size等。
find . -name persistence -prune -o ! -name '*log*' ! -size +100m -print0 | cpio -pmd0 /root/do_bak/ltedecoder
上面則不僅忽略persistence資料夾,還會忽略包涵log的檔案或資料夾,還會忽略大於100m的檔案。
注意: 你一定注意到了find 後面是「.」,代表當前資料夾,即此命令必須是pwd是你要拷則的資料夾裡面,如你把sour-dir的檔案進行拷則,則須要先cd $sour-dir。
git忽略檔案 資料夾
本文內容參考,以下 對於一些工具產生的檔案,是沒必要新增到git工程倉庫的,此時可以忽略這些不必要的檔案 資料夾。忽略的前提是這些檔案已經不在git的index裡面了 a.把要忽略的檔案從git的index中刪除,並提交。git rm r cached settings 刪除.settings中所有...
linux find 忽略資料夾
在當前目錄先查詢所有以a開頭的檔案,忽略documents資料夾 find path documents prune o name a print注意path如果是相對路徑需要以 開頭,並且匹配模式後不可以有 o 表示邏輯或 整條語句理解為當prune執行為true時,那麼就不再執行那麼選項 忽略多...
如何cp目錄時忽略指定的目錄和檔案
在備份ltedecoder程式時,需要把此目錄拷由到bak目錄下,但decoder目錄下有個大檔案,不需要備份,還有日誌問題,也不需要備份,如何實現呢?方法 cd source dir find name snapshot prune o print0 cpio pmd0 dest dir 此段的意...