汚れた古いハードドライブに写真をたくさんコピーしようとしていますが、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)$' ...
または、括弧を使用して複数の-name
OR-iname
述語をORすることもできます。たとえば、次のようになります。
find ... \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) ...
メモ:シェルがそれをサブシェルの要求として解釈しないように、角括弧をバックスラッシュにエスケープする必要があります-bash: syntax error near unexpected token
( ''