我前段时间制作了一个Bash脚本来查找重复文件/home/usr/xxx/bin/finddup.sh
#!/bin/bash
DIR=${1:-`pwd`}
FILENAME=`basename $0`
DATETIME=`date +%Y%m%d%H%M%S`
TMPFILE=`mktemp /tmp/${FILENAME}.${DATETIME}` || exit 1
find -P $DIR -type f -exec cksum {} \; | sort | tee $TMPFILE | cut -f 1-2 -d ' ' | uniq -d | grep -if - $TMPFILE | sort -nr -t' ' -k2,2 | cut -f 3- -d ' ' | while read line; do ls -lhta "$line"; done
但是今天当我再次尝试使用它时,它并没有起作用。问题似乎来自grep -if - $TMPFILE
步骤,它无法从stdin提供的模式中找到来自$TMPFILE
的重复文件行。我无法在这里找出-
的正确用法。任何人都可以启发我吗?
答案 0 :(得分:2)
你根本不需要-f -
。如果您没有为grep
指定文件,则默认为阅读stdin
。
-f
指示grep
从stdin
而不是要搜索的文字中读取模式。