linux在使用find命令查找并合并文件出错

通过sh想写一段将指定文件合并的代码,通过find查找指定目录下的较新文件(比指定文件修改时间迟的)

通过下列命令
find /root/ZHYQ/ -newer "${filenm}" | xargs cat > /root/huizong.txt;

运行结果及报错内容

[root@master ZHYQ]# find /root/ZHYQ/ -newer "dhSig_202112211045.txt" | xargs cat > /root/huizong.txt;
cat: /root/ZHYQ/: Is a directory

但是以下命令可行:
find /root/ZHYQ -name "dhSig_${today}*" | xargs cat > /root/huizong.txt
该命令可以匹配我找到的文件并将文件合并

求指正修改!(-name -newer 这俩到底有啥区别)

img


你可以修改为:
find /root/ZHYQ/ -type f -newer "${filenm}" | xargs cat > /root/huizong.txt;
-newer只是比较时间,结果是包含文件和目录的,查找时指定类型,只查找文件。


find . -newer tmp.txt             在当前目录下查更新时间比tmp.txt近的文件或目录
find . -name tmp.txt              在当前目录下查找tmp.txt文件