Rsyncはワイルドカードでファイルとフォルダを無視します。

Rsyncはワイルドカードでファイルとフォルダを無視します。

フォルダ名とワイルドカードを使用して削除サーバーからダウンロードするときは、特定のフォルダの下のすべてのファイルまたはフォルダを無視したいと思います。

"/*.old/"の下のすべてのファイルまたはフォルダを除外したいが、フォルダが複数の場所に存在する可能性があります。

たとえば、複数の項目がある場所を指定する必要がありますか?それとも、古いフォルダが表示されるたびに除外する方法はありますか?

--exclude='*/*.old*/*'
--exclude='*/*/*.old*/*'
--exclude='*/*/*/*.old*/*'
--exclude='*/*/*/*/*.old*/*'

これが私が使用するコマンドです

rsync -amHAXxzvR --update --numeric-ids --progress  --include='*/' --include=*.sas7bdat --exclude='*.old/' --exclude=* -e "ssh -T -c blowfish-cbc -o Compression=yes -x" [email protected]:/XXX/ /mnt/z/XXX/.

/sasdata.old/というフォルダとそのサブフォルダを除外したいと思います。このフォルダはどこにでも配置できます。

ベストアンサー1

ソースツリーの上部にあるディレクトリとは無関係にすることを指定するだけです。

--exclude '*.old/'

これで、完全なコマンドを確認した後でもまだコマンドを操作できない理由が明らかになりました。包含オプションと除外オプションは左から右に適用されます。特定のファイルまたはディレクトリに最初に一致するファイルまたはディレクトリが適用されます。したがって、あなたの場合は、まず不要なディレクトリを除いてすべてを含める必要があります。

バラよりスーパーユーザーに対する私の答え詳細を確認してください。

この試み、

rsync -aHAX -xu -z -v -R --numeric-ids --progress --prune-empty-dirs \
    --exclude='*.old/' --include='*/' \
    --include='*.sas7bdat' --exclude='*' \
    -e "ssh -T -c blowfish-cbc -x" \
    [email protected]:/XXX/ /mnt/z/XXX/.

おすすめ記事