[20151103]find+ls+rm .txt

[20151103]find+rm.txt

--今天检查机器发现一台机器的dataguard的磁盘快满了,要删除一些arcvhive log腾出一些空间.
--犯了一点小错误自己做一个记录.

--在删除前我做一下检查,我清楚记得要查询N天以前修改的文件使用-mtime +N命令:
--我执行如下,实际上记录是事后的,+N的时间不是原来的.

$ find  -mtime +49 -exec ls -l \;
...
-rw-r----- 1 oracle oinstall 1776432640 Nov  2 20:28 2_768_862334375.dbf
-rw-r----- 1 oracle oinstall      19968 Nov  2 20:28 2_769_862334375.dbf

--奇怪!结果我看见了前天的archivelog 文件.
--在这里浪费了N多时间,看文档才发现我打错了命令.

--我先执行如下:
$ ls -l |wc
    133    1058   10575

$ find  -mtime +49 -exec ls -l \; |wc
    532    4760   38604

--感觉奇怪,什么后面的比前面的多.看文档才发现我打错了命令.

$ find  -mtime +49 -print
./1_648_862334375.dbf
./1_647_862334375.dbf
./2_668_862334375.dbf
./2_669_862334375.dbf

--这里输出4行,实际上我想看看日期,-print参数无法看到,我才采用-exec 加命令的格式.结果我忘记加入{}.
--正确的应该执行如下:
$ find  -mtime +49 -exec ls -l {} \; | column -t
-rw-r-----  1  oracle  oinstall  13824      Sep  13  20:07  ./1_648_862334375.dbf
-rw-r-----  1  oracle  oinstall  175732736  Sep  13  20:07  ./1_647_862334375.dbf
-rw-r-----  1  oracle  oinstall  991492096  Sep  13  20:07  ./2_668_862334375.dbf
-rw-r-----  1  oracle  oinstall  49152      Sep  13  20:07  ./2_669_862334375.dbf

--加入column -t 主要是显示的需要整洁.正好4行,这样133*4=532,就很好的解析我前面遇到的情况.
--我上面的命令相当于执行ls -l 4次.(因为输出4行),怪不得我前面执行输出好长....

$ find . -mtime +50 -exec rm {} \;

--还是报错.主要是删除的文件太多.

--google看了一些文档,比较保险的做法是:
$ find . -mtime +50 -print0 |xargs -0 -r rm

Use the -r flag with xargs. If stdin is empty, xargs will not run the command, and exit.

--实际上ls命令linux下许多系统使用的别名.它的时间显示格式我个人非常不习惯,没有年.
--最好修改/etc/profile.d/colorls.sh加入,参考:
--http://blog.itpub.net/267265/viewspace-754738/

alias ll='ls -l --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias l.='ls -d .* --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias ls='ls --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

--man ls
--time-style=STYLE
    with -l, show times using style STYLE: full-iso, long-iso, iso, locale, +FORMAT.  FORMAT is interpreted like 'date';
    if FORMAT is FORMAT1<newline>FORMAT2, FORMAT1 applies to non-recent files and FORMAT2 to recent files; if STYLE is
    prefixed with 'posix-', STYLE takes effect only outside the POSIX locale

--我测试一下使用 --time-style=long-iso也符合需求.

$ find  -mtime +49 -exec ls -l --time-style=long-iso {} \; | column -t
-rw-r-----  1  oracle  oinstall  13824      2015-09-13  20:07  ./1_648_862334375.dbf
-rw-r-----  1  oracle  oinstall  175732736  2015-09-13  20:07  ./1_647_862334375.dbf
-rw-r-----  1  oracle  oinstall  991492096  2015-09-13  20:07  ./2_668_862334375.dbf
-rw-r-----  1  oracle  oinstall  49152      2015-09-13  20:07  ./2_669_862334375.dbf

--这样显示对比前面要清楚许多.

时间: 2024-09-20 21:21:49

[20151103]find+ls+rm .txt的相关文章

[20151103]versions伪列.txt

[20151103]versions伪列.txt --经常忘记做一个记录. SELECT versions_starttime, versions_endtime, versions_xid, versions_operation,        versions_startscn, versions_endscn, empno, ename, job, mgr, hiredate,        sal, comm, deptno   FROM emp        VERSIONS BETW

[20171110]toad 小技巧.txt

[20171110]toad 小技巧.txt --//前几天的事情,一大早要求查询记录操作异常,本来想使用logminer查询,我们redo文件太大,使用logminer分析很慢. --//想到版本查询,vresions伪劣太多,我经常记不住,尤其是后面VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;这段, --//好在我以前保存在blog中,链接如下:http://blog.itpub.net/267265/viewspace-1821206/=> [20

[20171124]xxd与通配符.txt

[20171124]xxd与通配符.txt --//linux 上许多命令都支持通配符,比如 $ ls -l *.txt -rw-r--r-- 1 oracle oinstall 44801024 2017-11-24 09:16:38 c01.txt -rw-r--r-- 1 oracle oinstall 44801024 2017-11-24 09:16:43 c02.txt -rw-r--r-- 1 oracle oinstall    60168 2017-11-24 09:18:02

【LINUX学习】例行命令的建立

例行命令就是那些需要定期执行的命令或者某个脚本.在linux中一般使用at 和contable服务来实现. 下面就简要的介绍一下两个的大概使用方法 at :此服务仅仅执行一次,之后就从linux中取消 先查看一下at服务的状态 [root@localhost test]# service atd status atd (pid 2222) 正在运行... 停止服务 [root@localhost test]# service atd stop 停止 atd:[确定]  启动服务 [root@lo

linux学习笔记之linux文件管理

内容: #文件系统及Shell的基本概念 #文件及目录操作命令 #VI的使用 #软件包的管理 一.文件系统及Shell的基本概念 1.文件系统的含义 文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件 2.Linux的文件系统 Linux系统采用虚拟文件系统技术(VFS).结构采用倒立树型.VFS使Linux支持以下文件系统: EXT2: 二次扩展 EXT3: 三次扩展 SWAP: 交换文件系统 FAT.FAT32 NTFS (默认不支持,需要特定的模块) VFAT: 虚拟FAT SYSV

Linux系统中git

 Git 起源 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.Linux 内核开源项目有着为数众广的参与者.绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间).到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码.到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力.这就迫使 Linux 开

Xargs用法详解(原创)

简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: 这个命令是错误的find /sbin -perm +700 |ls -l 这样才是正确的find /sbin -perm +700 |xargs ls -l   xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments . 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字

Nodejs进阶:如何玩转子进程(child_process)

本文摘录自个人总结<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 在node中,child_process这个模块非常重要.掌握了它,等于在node的世界开启了一扇新的大门.熟悉shell脚本的同学,可以用它来完成很多有意思的事情,比如文件压缩.增量部署等,感兴趣的同学,看文本文后可以尝试下. 举个简单的例子: const spawn = require('child_process').spawn; const ls

Git Submodule使用完整教程

自从看了蒋鑫的<Git权威指南>之后就开始使用Git Submodule功能,团队也都熟悉了怎么使用,多个子系统(模块)都能及时更新到最新的公共资源,把使用的过程以及经验和容易遇到的问题分享给大家. Git Submodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解. 1.对于公共资源各种程序员的处理方式 每个公司的系统都会有一套统一的系统风格,或者针对某一个大客户的多个系统风格保持统一,而且如果风格改动后要同步到多个系统中