[问题] 请问 find 排除某些档案的方式

楼主: s8454158 (′‧ω‧‵)   2017-06-30 02:59:11
小弟想要每日删除在/opt/123/log 内的所有档案,但是要排除连结指向的档案...
以下是目录底下的资料:
/opt/123/log/aaa.ERROR -> ERROR20170622-091436.1204
/opt/123/log/aaa.WARNING -> ERROR20170622-211432.4204
/opt/123/log/aaa.INFO -> INFO20170622-221431.1927
/opt/123/log/bbb.ERROR -> ERROR20170622-091432.1477
/opt/123/log/bbb.WARNING -> ERROR20170622-111432.8437
/opt/123/log/bbb.INFO -> INFO20170622-091438.1277
其余还有一大堆类似的档案,上面六个档案档名会变动也不能搬移 = =
有方法可以写 shell script 用 find 排除某些特定档案一次杀光其他档案吗??
感恩~
作者: dododavid006 (朔雪)   2017-06-30 10:41:00
find /opt/123/log/* -not -type l -delete这样会排除掉 symbol link 的档案不过资料夹下如果只有 regular file 要删的话建议find /opt/123/log/* -type f -delete
楼主: s8454158 (′‧ω‧‵)   2017-06-30 12:25:00
谢谢 那symbol link 指向的档案也要一起排除呢?
作者: yvb   2017-06-30 21:49:00
find /opt/123/log/ -type l | \(sed 's/^/! -samefile /;s/$/ -a/';echo ' -type f') | \xargs find -L | xargs rm

Links booklink

Contact Us: admin [ a t ] ucptt.com