linux脚本删除文件(脚本删除文件夹)

linux 自动删除文件脚本

rm_/opt/scommnet/upload()

{

find / -type -f -mtime +2 -exec rm {} \;

}

然后把这个函数放入用户的.bash_profile中去,就可以开机自动删除2 天前创建或修改的文件了

如果你是root ,那么你的.bash_profile文件就在根目录下中,如果你是普通用户,那么这个文件,就在$HOME中

find命令在“/”下查找普通文件,修改时间在2日以内的文件,-exec是来执行命令,rm的,后面的{} \;是-exec执行命令时必须加上的东西

试下吧,祝你好运

linux日志清理脚本清理不掉

linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。

二、 分析日志

查看日志路径和日志命名规则:

要清理这个目录下面如此命名规则的日志。

三、方法

这时我想的肯定是希望能写一个脚本把这些日志清除掉,但不是删除掉。那么现在需要实现3步:

? ? ? ? ?1.找到所有项目的log的位置

? ? ? ? ?2.清除或者删除log内容

? ? ? ? ?3.定时执行脚本

删除和清空日志命令:

find?对应目录?-mtime?+天数?-name?"文件名"?-exec?rm?-rf?{}?\;

实例命令:

find?/opt/soft/log/?-mtime?+7 -name?"*.log"?-exec?rm?-rf?{}?\;

说明:

将/opt/soft/log/目录下所有7天前带".log"的文件删除。具体参数说明如下:

find:linux的查找命令,用户查找指定条件的文件;

/opt/soft/log/:想要进行清理的任意目录;

-mtime:标准语句写法;

+7:查找7天前的文件,这里用数字代表天数;

"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;

-exec:固定写法;

rm?-rf:强制删除文件,包括目录;

{}?\;?:固定写法,一对大括号+空格+\+;

清空方法:

find?/opt/soft/log/?-mtime?+7 -name?"*.log"?-type f -print?-exec truncate -s 0 {} \;? ? -将符合这样一个条件的文件查到出来并赋予它0M的大小。

-type f -print:?将符合的文件打印出来

truncate -s 0 aa.txt:意思是将aa.txt的大小变成0M,即把aa.txt的内容清空了

用脚本删除linux服务器下某目录下的文件

declare -i flag 设置flag;

for I in `ls 目录`; do 遍历目录

flag=0 假设0为不存在

for J in `获取数据库文件名列表`; do 遍历数据文件名

if I==J; then 如果存在就跳出循环;

flag=1 设置存在标签

break 跳出内层循环

fi

done

if [ $flag -eq 0 ]; then 如果flag没有改变,那么文件是不存在的;

rm -rf $I 删除文件

fi

done

linux如何删除正在被使用的文件

linux删除正在被使用的文件的操作方法如下:

1、首先打开Linux系统,创建一个空文件和空文件夹。如图所示:

2、rm 文件名 (功能:删除文件)提示:是否删除文件,输入yes。如图所示:

3、rm *? ?(功能:删除该路径下的所有文件)

4、rm -f? 文件名 (功能:删除文件,不再询问是否删除)

5、rm -r 文件夹 (功能:递归删除文件夹)

6、rm -rf 文件或者目录 (功能:删除文件获得递归删除目录,最常用)

linux 下如何编写定时删除某目录下文件的脚本?

自己编写crontab设定计划任务就是了,

那个服务就是做这些定时的,自动化的工作用的。要写什么脚本的,一个命令搞定。

给你个手册页自己看吧。

补充回答:

运行这个命令:

crontab

-e

此命令将打开一个文本编辑器以添加新任务。

*

20

*

*

*

rm

-rf

/root/febhost/dat/*

/root/febhost/log/*

用对应的文本编辑器命令保存退出(vi编辑器是按esc后打:wq)

如果你对这种方式不熟悉,也可以直接改/etc/crontab,我看到你是要删除root文件夹内的目录,假设你有root权限(因为/etc/crontab所有者是root,并且只有以root身份执行删除命令才能删除root

home内的文件),用以下命令打开此文件:

vi

/etc/crontab

将光标移动至最后一行,按o键新开一行输入以下内容:

*

20

*

*

*

root

rm

-rf

/root/febhost/dat/*

/root/febhost/log/*

给你解释下此行的含义吧,前五个以4个空格分隔开的值依次表示:分、时、日、月、周,如果取所有值就是打*号,如果你想周期性的运行一个任务,crontab也接受范围指定,比如说一天中的早8点到晚6点每隔一小时(就是每两小时,将会在8,10,12,14,16,18执行)执行你这个删除命令这样写:

*

8-18/2

*

*

*

root

rm

-rf

/root/febhost/dat/*

/root/febhost/log/*

第一个字段是分钟,取值范围:0-59

第二个字段是小时。取值范围:0-23

第三个字段是一个月中的第几天,取值范围:1-31

第四个字段是一年中的第几个月,取值范围:1-12

最后一个字段是一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天。

下一个字段是执行该命令的用户身份,这里是root用户,最后一个字段就是定时运行的命令。

关于Linux下脚本删除文件,比如有一堆文件在/root/work/file 文件夹下,文件名为file+数字。

可以写循环,不过不如直接用通配符删简单

比如

rm -f file0[0-2].txt

18人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册