2017-02-06 14 views
1

rsyncを使用してMatlabモデルのローカルバックアップを行います(最終目標は、PhDファイルを自動バックアップするためのシェルスクリプトです)。rsync:ワイルドカード除外を再帰的に適用する方法

このモデルには複数のフォルダがあり、トップレベルでいくつかのワイルドカードマッチを除外したいが、下位レベルでは除外したい。これは可能ですか?

例ファイル構造:

/Model    % DO NOT WANT to sync *.mat files in this directory 
/Model/Data/Greens % WANT to sync *.mat files in this subdirectory 

例(簡略化)コード:

#!/bin/bash 
rsync -a --exclude="*.mat" /Users/Me/MATLAB/Model /Volumes/KINGSTON/Backup 

コード例は、ALLフォルダレベルのALL * .MATファイルを除外する。トップフォルダにワイルドカード'*.mat'のみを適用するように修正するにはどうすればよいですか?

TL; DR:すべてのサブフォルダにrsyncを再帰的に適用する方法はありますか?最上位フォルダのみにワイルドカードを適用する方法はありますか?

答えて

2

デフォルトでは、*.matは、フォルダ内のすべての.matファイルとすべてのサブディレクトリに一致します。あなたが唯一の親ディレクトリにある.MATファイルを無視したい場合は、あなたが含めたい場合は、そのフォルダ内の.MATファイル

rsync -a --exclude="Model/*.mat" /Users/Me/MATLAB/Model /Volumes/KINGSTON/Backup 

代わりを無視するだけにexcludeディレクティブにModel/プレフィックスを追加することができます。マットファイルのみあなたはパーフェクト--excludeオプション

rsync -a --include="Model/Data/Greens/*.mat" --exclude="*.mat" /Users/Me/MATLAB/Model /Volumes/KINGSTON/Backup 
+0

と一緒に--includeオプションを使用することができますModel/Data/Greensフォルダに、感謝します。 両方のオプションを付けていただきありがとうございます。 '--include'は私がやりたいことに便利です。 –

関連する問題