对 find 的输出执行多个 bash 命令

对 find 的输出执行多个 bash 命令

我想使用 find -exec 选项执行一些命令,但我不确定这段代码有什么问题。目前,它只处理第一个查找结果,然后就卡住了。我在 OS X 中使用 bash。

read -e DIRECTORY

find $DIRECTORY -type f -name '*.mov' -exec sh -c '
  file="$0"
  echo "Processing $file ..."
  modmovie -notrack "Timecode Track" $file -save-in-place
  read line </dev/tty
' {} \;

答案1

我想出了这个例子,正如其他人在评论中所说,这read line </dev/tty导致它等待用户输入。

#!/bin/bash

find db -type f -name '*.jpg' -exec sh -c '
file="$0"
echo "hi"
echo "$file"
read line </dev/tty
' {} \;

我的脚本的输出

hi
db/db1440/gothamgardenxmas21440.jpg
     <---- I hit enter here
hi
db/db1440/unveiling11440.jpg
     <---- I hit enter here    
hi
db/db1440/astronomer21440.jpg
     <---- I hit enter here
...

相关内容