findコマンドの各結果のファイルを生成しますか?

findコマンドの各結果のファイルを生成しますか?

このコード行を使用して、各結果の出力を生成します。

exec("find ics/ -mmin +3 -type f -name '*.pdx' -exec basename {} ';' > ./tmp/filename") 

毎回動的ファイル名でファイルを生成するには?このように:

./tmp/filename_{*Here should be the dynamic name*}

ベストアンサー1

新しいシェルを起動し、このファイルを引数として提供できます。次に、POSIXパラメータ拡張を使用して、パスと(必要に応じて)拡張を削除します。

find . -type f -name "*.pdx" \
  -exec sh -c \
    'base="${0##*/}"; printf "%s\n" "$base" > ./tmp/filename_"${base%.pdx}"' {} \;

おすすめ記事