【发布时间】:2012-06-20 20:15:06
【问题描述】:
我需要递归查找目录中的所有 TIFF,但忽略一些也恰好以“.tif”结尾的工件(基本上所有隐藏文件)。这个命令:
find . -type f -name '*.tif' ! -name '.*'
在命令行上完全按照我想要的方式工作,但是在 bash 脚本中它什么也找不到。我尝试用-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
【问题讨论】:
-
请摘录您的脚本
-
您是从包含
.tiff文件的目录调用脚本吗? -
脚本的工作目录是什么?这就是
find命令寻找匹配“*.tif”的文件的地方。 -
这两个版本似乎都适合我。
-
如果您删除
.之后的所有内容会怎样?它仍然没有找到任何东西吗?