怎樣cp資料夾時忽略指定的資料夾和檔案

2021-09-07 13:07:23 字數 960 閱讀 2081

在備份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 此段的意...