我在bash中有以下for循环:
for file in "$1"/*PM.mov ; do
ffmpeg -i "$file" -an -f framemd5 "${file}.framemd5.txt"
done
我想调整它,以便它可以在给定目录中的任何* PM.mov文件上运行,而不管该文件的目录深度如何。现在,循环只运行在目录的顶层。我该如何改变?
答案 0 :(得分:1)
两种可能性:
使用globstar
(以及我们nullglob
时):
shopt -s globstar nullglob
for file in "$1"/**/*PM.mov ; do
ffmpeg -i "$file" -an -f framemd5 "${file}.framemd5.txt"
done
正确使用find
(但前一个更好,因为它只是对您的代码进行了一些小改动):
find "$1" -type f -name "*PM.mov" -exec sh -c 'file=$1; ffmpeg -i "$file" -an -f framemd5 "$file.framemd5.txt"' sh {} \;
答案 1 :(得分:0)
使用find cmd
@media screen and (max-width: 1020px) {
.helpful .readers,
.helpful .thumb {
display: block;
text-align: center;
}
.helpful .thumb {
float: none;
}
}