【发布时间】:2019-10-10 23:31:20
【问题描述】:
我在 bash 中定义了一个函数,它检查两个文件是否存在,比较它们是否相等并删除其中一个。
function remodup {
F=$1
G=${F/.mod/}
if [ -f "$F" ] && [ -f "$G" ]
then
cmp --silent "$F" "$G" && rm "$F" || echo "$G was modified"
fi
}
然后我想从 find 命令中调用这个函数:
find $DIR -name "*.mod" -type f -exec remodup {} \;
我也尝试过| xargs 语法。 find 和 xargs 都表明 ``remodup` 不存在。
我可以将函数移动到单独的 bash 脚本中并调用脚本,但我不想将该函数复制到路径目录中(还),所以我需要使用绝对路径调用函数脚本或者总是从同一位置调用调用脚本。
(我可能可以使用fdupes 来完成这个特定任务,但我想找到一种方法
-
从
find命令调用函数; - 从另一个脚本的相对路径调用一个脚本;或
- 对使用
find命令找到的文件使用${F/.mod/}语法(或其他 bash 变量操作)。)
【问题讨论】: