包括排除文件夹中的特定文件

Include specific file from exluding folder

我正在使用 rsync 将文件夹从源复制到目标

我可以成功使用排除

$  rsync -av --exclude='*/deploy/scb_pdm/*' --exclude='*/logs/*'  $COPY_SRC_DIR  $COPY_DEST_DIR
server-4.5.0/conf/wrapper.conf
server-4.5.0/deploy/
server-4.5.0/deploy/scb_pdm/
server-4.5.0/deploy/scb_pdm/director.properties
server-4.5.0/deploy/scb_pdm/ocollate_static.madconfig
server-4.5.0/lib/
server-4.5.0/lib/blue-marble-4.5.0.201511121524.jar

现在卡住了,怎么才能只排除

server-4.5.0/deploy/scb_pdm/ocollate_static.madconfig

我将从 rsync 排除目录的一般用法开始。

为了实现这一点,您需要使用 --exclude 标志。

rsync -arv --exclude cache/ your_src_dir/ your_dest_dir/

对于您的情况,这将排除 ocollate_static.madconfig.

的特定文件
rsync -arv --exclude='*/deploy/scb_pdm/ocollate_static.madconfig*' --exclude='*/logs/*'  $COPY_SRC_DIR  $COPY_DEST_DIR

你可以考虑使用另一个标志

--delete-excluded       also delete excluded files from dest dirs

另一个选项,同时排除多个文件和目录。

$ rsync -avz --exclude your_file1.txt --exclude dir3/file4.txt source/ destination/

有关在 rsync 中使用排除的详细信息。