我正在嘗試使用rsync設置Perl web部署腳本。
我需要排除一些基於通配符的文件,但僅限於特定的文件夾而不是其子文件夾。
如果我列出要排除的文件名,那麼它們將被排除在任何目錄之外,但是如果我包含完整路徑(源或目的地),我不能讓它們匹配,所以它們不會被排除。
我試過這個樣子的
rsync --recursive --force --delete --progress --exclude='$SOURCE_DIR/index.cgi' --exclude='$SOURCE_DIR/*.pm' "$SOURCE_DIR" "$DEST_DIR"
和
rsync --recursive --force --delete --progress --exclude='$DEST_DIR/index.cgi' --exclude='$DEST_DIR/*.pm' "$SOURCE_DIR" "$DEST_DIR"
這些都不似乎工作的rsync命令,如果我嘗試這個
rsync --recursive --force --delete --progress --exclude='index.cgi' --exclude='*.pm' "$SOURCE_DIR" "$DEST_DIR"
則將排除所有文件夾中的文件。
我需要做些什麼才能從$DEST_DIR folder
中排除這些文件,而不是其子文件夾?
爲什麼這個問題標記爲Perl語言? – Borodin
'man rsync'搜索'INCLUDE/EXCLUDE PATTERN RULES'。它涵蓋了通配符排除。 – xxfelixxx
如果你試圖用perl運行rsync,你可能會因爲shell轉義而被咬,所以你可能需要嘗試轉義'*'字符。 – xxfelixxx