菜鸟的shell-删除5天前的文件
- 1778 次检阅

因为需求原因,要每天定时去删除指定目录下超过5天的文件。

刚开始我想用java,因为本职就是写java的,但是梳理了一下,卧槽java写删除文件居然要那么多(主要是懒).....

于是乎,想到了shell,emmm,这问题来了,自己又不会,也没有学过shell,辣鸡学校出来的大专鸡那也只能自己厚着脸,自己去写,花了一下午百度+实践初成品的代码思路:

ps:
location 是设置查找的目录
--mtime +30 是设置时间为30天前
-type f 这周查找的类型为文件
-type d 这周查找的类型为文件夹
N分钟前 -mini +N

然后测试运行也遇到几个问题...

首先就是你在window 上写shell脚本的话,然后上传到linux运行,会报错的-->"-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory"

度娘解决的办法是运行一下这个命令:

或者vi 脚本,底行模式,输入

具体为什么出现这个错误的话,问题其实很简单,写java也会经常遇到的。

因为在windows下编写shell脚本回车符是\n\r,而linux下的回车符是\n,所以在linux下运行脚本的时候,需要修改下脚本的的编码格式。

然后就是自己遇到一个傻吊问题,可能写java习惯了 a = b,等于之间有空格,shell脚本也不认..

最后修改的代码如下,也感谢我公司shell大神的指导,也让自己入门了shell,哈哈哈哈哈哈....

菜鸟的入门shell..记录撸码完毕...

如果需要让他定时的话,linux有自带的定时命令吧?好像是叫crontab定时执行任务命令。

 


分享到:
, ,

这篇文章有4条评论

  1. NO:2891 / 發布於 - 2018-12-25 #1 回复

    你应该换一个Windows下的编辑器了。

发表评论