这些文件夹也包含其他文件夹,我希望它是递归的。
答案 0 :(得分:0)
我今天没有时间为你做这一切,但这是技术的基础:
find DIRECTORY1 -exec bash -c 'b=$(basename "$1"); m=$(stat -f "%m" "$1"); echo $m:$b:$1' _ {} \; >/tmp/a
find DIRECTORY2 -exec bash -c 'b=$(basename "$1"); m=$(stat -f "%m" "$1"); echo $m:$b:$1' _ {} \; >/tmp/b
这将为您提供两个文件 - /tmp/a
和/tmp/b
,看起来像这样,每个文件的修改时间,基本名称和全名由冒号分隔:
1492590869:a.gif:/users/mark/tmp/a.gif
1492591676:a.pdf:/users/mark/tmp/a.pdf
1493118064:a.png:/users/mark/tmp/a.png
1492857356:b.png:/users/mark/tmp/b.png
现在解析awk
告诉它分隔符是冒号的那些:
awk -F: '
FNR==NR {time[NR]=$1;base[NR]=$2;full[NR]=$3; next}
{t=$1;b=$2;n=$3; if(n in time && t!=time[something] ...
' /tmp/a /tmp/b
在第一次传递中,FNR==NR
选取第一个文件的字段,然后在第二个传递中进行检查和打印。
有点冲刺,但希望它有所帮助。没有人说答案必须完整。