zshでrsyncを介してアスタリスクまたは同様の表現でフィルタリングする方法

zshでrsyncを介してアスタリスクまたは同様の表現でフィルタリングする方法

次のような名前のファイルがたくさんあります。

/var/log/foo/2014-07-06-01.log
...
/var/log/foo/2014-07-20-04.log

毎日複数のログファイルがあり、特定の日付のログファイルをダウンロードしたいと思います。

$ rsync server:/var/log/foo/2014-07-06-*.log .

しかし、私はzsh: no matches found間違っています。

拡張子ごとにフィルタリングできることをマニュアルで見つけましたが、この場合、ファイル名をフィルタリングする方法が見つかりませんでした。

フィルタリングを使用する簡単な方法はありますかrsync

ベストアンサー1

次の特殊文字を避ける必要があります。

$ rsync server:/var/log/foo/2014-07-06-\*.log .

または

$ rsync 'server:/var/log/foo/2014-07-06-*.log' .

あるいは、より良い方法はinstallurl-quote-magicです。

autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
zstyle ':urlglobber' url-other-schema http https ftp mailto

これにより、zshは自動的にこれを行います。他のURLスキームを追加することもできます。

編集:またはunsetopt NOMATCHエラーが発生するとPOSIXシェルの動作に戻ることがありますが、場合によっては予期しない結果が生じる可能性があるため、これを行わないことをお勧めします。

おすすめ記事