複数の基準でbabun Findを使用して別のハードドライブにコピーする

複数の基準でbabun Findを使用して別のハードドライブにコピーする

汚れた古いハードドライブに写真をたくさんコピーしようとしていますが、Windowsファイルエクスプローラで開くことができず(尋ねないでください)、あなたの愛する祖母を助けるためにこれを行う必要があります。 Babun(素晴らしいWindowsシェル)を使ってナビゲートできます。

これまで、私は次のコマンドを試しました。

$ find /cygdrive/h/Documents\ and\ Settings -name '*.jpeg|png|JPEG' -exec cp '{}' /cygdrive/f/tof \;

$ find /cygdrive/h/Documents\ and\ Settings -name '*.(jpeg|png|JPEG)' -exec cp '{}' /cygdrive/f/tof \;

結果はありません。何か抜けましたか?

ベストアンサー1

find's -name述語は正規表現ではなくglobを使用します。

で正規表現を使用するには(または大文字と小文字を区別しない)をfind使用してください。たとえば、-regex-iregex

find ... -regextype egrep -iregex '.*\.(jpe?g|png)$' ...

または、括弧を使用して複数の-nameOR-iname述語をORすることもできます。たとえば、次のようになります。

find ... \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) ...

メモ:シェルがそれをサブシェルの要求として解釈しないように、角括弧をバックスラッシュにエスケープする必要があります-bash: syntax error near unexpected token( ''

おすすめ記事