2017-01-05 24 views
-1

rsyncをスクリプト化して、OSx上の1つのディレクトリにファイルをすばやくコピーしようとしています。私はincludeオプションとexcludeオプションに問題があります。例えば、私がコピーしたいディレクトリは次のとおりです。私は、最初はただキャッシュディレクトリを同期するためにrsyncを使用していたRsyncはインクルード、除外、フィルタリングを含む

$HOME/Library/Dir1/RandomDir/cache/ 

、しかしOSXは、ソースパスにワイルドカードを使用していませんでした。私が使用していたコマンドは以下のとおりであった:

rsync -avP "$HOME/Library/Dir1/*/cache/" Dest/Dir 

私はそれがDir1内のリテラルの相互浸透を探していたので、OSXがディレクトリを見つけることができませんでした。このコマンドを実行します場合は/ * /と*はワイルドカードとして扱われていませんでした。

次に、--includeと--excludeオプションを実装しようとしましたが、これを動作させることができませんでした。

私はそれだけでキャッシュディレクトリをコピーしません。このコマンドを実行すると、私は

rsync -avP --include="*/" --include="cache/" --exclude"*" $HOME/Library/Dir1/ Dest/Dir/ 

を使用していました。 rsyncがインクルードを実装し、入力順に除外しているので、rsyncはDir1ディレクトリの下にあるすべてをインクルードして(ワイルドカード問題を処理する)、キャッシュディレクトリのみをインクルードします。他のすべてを除外します。私はファイル属性とタイムスタンプをコピー全体に保存するアーカイブ機能にrsyncを使用したいと考えています。

ここでどこが間違っているのか教えていただけますか?私はコマンドのいくつかの亜種、例えば--include = "/cache"と--exclude = "/*"を試しましたが、明らかにこれまで働いたことはありません。どんな助けも大歓迎です。ありがとうございました。

+0

スクリプト、Automatorスクリプト、またはコンソールからrsyncを実行していますか?コンソールは '$ HOME/Library/Dir1/*/cache /'部分を正しく展開するべきですが、Automatorはそうではないかもしれません。 – Janek

+0

ありがとうございます。私はAutomatorを使っているとは思っていませんが、私はそれに精通していません。私はbashスクリプトを作成し、そのファイルに.commandファイル拡張子を与えました。これをOSxでクリックすると、ターミナルウィンドウが開き、コマンドが実行されます。これはAutomatorを使用していますか? – user7376266

答えて

0

私は最終的に私の問題がどこにあるかを知りました。元のディレクトリを二重引用符で囲んで*をリテラルとして解釈します...とにかく感謝します。

関連する問題