1

我有一個目錄結構的Jekyll博客,其中包含許多隱藏文件和目錄,如.DS_Store.idea.git。它還具有中間構建工件和腳本,以_開頭,如_deploy.sh_drafts如何在使用gsutil到rsync時排除隱藏的文件和目錄?

我想編寫一個腳本,將所有內容上傳到Google雲端存儲中的存儲桶,但這些隱藏文件和下劃線工件除外。

我試過使用-x標誌,但是我的表達式排除了整個當前目錄,並且什麼也沒有上傳,或者未能排除我想要排除的一些內容。

這是我到目前爲止有:

#!/bin/sh 
gsutil -m rsync -rx '\..*|./[.].*$|_*' ./ gs://my-bucket.com/path 

和輸出我觀察:

$ ./_deployblog.sh 
Building synchronization state... 
Starting synchronization 

回答

1

一系列真正具體的正則表達式的解決了這個問題:

gsutil -m rsync -rdx '\..*|.*/\.[^/]*$|.*/\..*/.*$|_.*' . gs://my-bucket.com/path 

其中排除模式有4個組件,由|個字符分隔。

\..*  <- excludes .files and .directories in the current directory 
.*/\.[^/]*$ <- excludes .files in subdirectories 
.*/\..*/.*$ <- excludes .directories in subdirectories 
_.*   <- excludes _files and _directories 
+0

不適用於我。仍在同步.git文件夾 –

相關問題