* Linux(Ubuntu)のPowerShell Coreで,指定したディレクトリー内で再帰的に正規表現に一致したファイルを,カレントディレクトリーにコピー

:CATEGORIES: PowerShell Core,正規表現


PS (19:09:35) > Get-ChildItem -Path ~/ -Recurse | Where-Object { $_.name -match "^200[1-3]-..-...*\.jpg$" }| % { $n = $_.name; if (Test-Path ./$n) { echo "ここに,${n}はあります。" } else { cp $_.FullName ./$n} }
ここに,2002-11-02_152511_別冊ジュリスト,シッカロール.jpgはあります。
ここに,2002-11-02_152511_別冊ジュリスト,シッカロール.jpgはあります。
ここに,2002-12-29_163215_告発事件一件記録(写真資料・撮影日時).jpgはあります。
ここに,2002-11-02_152511_別冊ジュリスト,シッカロール.jpgはあります。
ここに,2002-12-29_163215_告発事件一件記録(写真資料・撮影日時).jpgはあります。
PS Pictures/w (19:10:48) > ls
2002-11-02_152511_別冊ジュリスト,シッカロール.jpg 2002-12-29_163215_告発事件一件記録(写真資料・撮影日時).jpg

 これまではfindコマンドのexecオプションや,locateコマンドとxargsとの組み合わせで行ってきた処理ですが,複数の同名ファイルがあると,ワーニングのようなメッセージが出ていたので条件式を付けました。