我需要递归地在一个目录中找到所有 TIFF,但忽略一些也恰好以“ .tif
”结尾的工件(基本上所有隐藏文件)。这个命令:
find . -type f -name '*.tif' ! -name '.*'
在命令行上完全按照我想要的方式工作,但是在 bash 脚本中它找不到任何东西。我已经尝试用!
and---and -not
我认为--几乎所有我能想到和/或由googleshpere推荐的转义排列替换,例如 .\*
,省略单引号等。显然我遗漏了一些东西,感谢任何帮助.
编辑:这是脚本的重要部分;它正在查找的目录是参数化的,但我一直在用硬编码进行调试;没有什么不同的:
#!/bin/bash
RECURSIVE=1
DIR=$1
#get the absolute path to $DIR
DIR=$(cd $DIR; pwd)
FIND_CMD="find $DIR -type f -name '*.tif' ! -name '.*'"
if [ $RECURSIVE == 1 ]; then
FIND_CMD="$FIND_CMD -maxdepth 1"
fi
for in_img in $($FIND_CMD | sort); do
echo $in_img # for debugging
#stuff
done