linux脚本删除文件
一行拼凑复杂点的命令可以了。
find /home/wind -maxdepth 1 -type d | sed 1d | xargs -I'{}' {}/www -sb | gawk '{ if ($1>20*1024*1024) {system("echo " $2 " more than " 20*1024*1024)}; }'
注:我喜欢用awk处理多行文本,可计算数字又有字符串处理。system()是gawk调用shell命令的函数,现在是显示信息而已,
如果你换成:system("rm -fr " $2 ";mkdir " $2) ,则是删除整个www目录,并重建一个www目录。
2. linux脚本 删除文件
命令:
find / -type f -name '*.out' 2>/dev/null -exec rm {} \;
参数解释:
/ : 从根目录开始查找;
-type f : 只查找一般文件,忽略目录,连接,套接字等其他文件(比如说目录 dir.out);
-name '*.out' : 指定查找名称;
2>/dev/null : 将错误信息置空。(可能出现的情况就是:删除操作的用户权限不够,有错误信息)
-exec rm {} \; : 对找到的文件执行删除操作。
3. linux上写一个脚本将原文件删除并重建一个同名空文件
linux文件系统下的tmp是一个临时性文件,并不存在于硬盘当中,是驻留在内存中的一块区域,是为了系统运行时产生的一些临时文件存放的地方,不可以将其移走会出现系统运行不稳定的情况。
如果你真的想做你可以写一个shell脚本:
#! /bin/bash
mv *.gz 指定路径
touch xxx.gz
创建好后使用chmod指令给它权限就可以了
4. linux删除30天前文件命令
1.删除文件命令:
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} ;
实例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
说明:
将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; :固定写法,一对大括号+空格++;
2.计划任务:
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。
2.1创建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一个可执行文件auto-del-30-days-ago-log.sh,并分配可运行权限
2.2编辑shell脚本:
vi auto-del-30-days-ago-log.sh
编辑auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
ok,保存退出(:wq)。
2.3计划任务:
#crontab -e
将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行
输入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
这里的设置是每天凌晨0点10分执行auto-del-7-days-ago-log.sh文件进行数据清理任务了。
5. Linux命令删除文件夹下的文件.保留文件夹.
你可以这么写
find
/var/woll/cion
-path
"/var/woll/cion/*/lib/*"
|
xargs
rm
-rf
就会只删除/var/woll/cion/*/lib/路径下的所有文件,
而不删除/var/woll/cion/*/lib目录本身(*表示匹配不同的目录)
6. 在LINUX中 如何使用脚本删除某一个特定大小的文件 不能用find命令 谢谢
如果不使用find,找文件大小比较麻烦
你需要ls
-l把文件的大小一个个列出来,然后匹配
7. 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用户,最后一个字段就是定时运行的命令。
8. 用脚本删除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
9. 编辑一个linux 的shell脚本,达到查找系统中的log文件并删除
find
dir
-iregex
".*\.log"
|
xargs
rm
-rf.
先用find命令找到指定目录下以log结尾的所有文件的全路径,然后用xargs把结果传递给rm命令的输入参数,然后用rm命令删除就可以了。
10. linux 自动删除文件脚本
在脚本中应该这样写:
rm -rf `/usr/bin/find /opt/scommnet/webchat/upload/* -ctime 2`
注意是 ` 不是单引号.