为 find 命令的每个结果创建文件?

为 find 命令的每个结果创建文件?

通过这行代码,我生成每个结果的输出。

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

如何每次生成一个动态文件名的文件?像这样:

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

答案1

您可以启动一个新的 shell 并提供该文件作为参数。然后使用 POSIX 参数扩展来删除路径和(如果需要)扩展名:

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

相关内容