「screenshot-2010-13-12.jpg」という名前の2008年のスクリーンショットがいくつかあります。 2010年から2019年までのスクリーンショットをコピーする必要があります。 -nameと-regexのさまざまなオプションを試しましたが、方法が見つかりませんでした。正規表現の唯一の成功は、形式別に見つけることだけです。
答え1
フォーマットに厳密に準拠するには、次のコマンドを使用できます。
find . -name "screenshot-201[0-9]-??-??.jpg" -type f
で始まる名前screenshot-201
、数字、ダッシュ、2文字、ダッシュ、2文字、.jpg
答え2
目的の日付範囲に昇格するには、zsh
次の手順を実行します。
cp screenshot-????-??-??.jpg(.e['
[[ $REPLY >= screenshot-2010-02-12.jpg &&
$REPLY <= screenshot-2019-09-21.jpg ]]']) /some/dir/
または:
cp screenshot-????-??-??.jpg(.e['
[[ ${REPLY//[^0-9]} = <20100212-20190921> ]]']) /some/dir/
.
たとえば、2010-02-12から2019-09-21の範囲の一般的なファイルをコピーします。
現在の作業ディレクトリにはありませんが、すべてのレベルのサブディレクトリで検索する必要がある場合:
cp -i -- **/screenshot-????-??-??.jpg(.e['
[[ $REPLY:t >= screenshot-2010-02-12.jpg &&
$REPLY:t <= screenshot-2019-09-21.jpg ]]']) /some/dir/
(-i
ディレクトリに同じ名前の複数のファイルが見つかる危険性を減らすためにここに追加します。)