1.列出最近动过(touched)的文件
作为一个DBA,你经常会需要查看最近被动过的文件。当Oracle文件被读或者写的时候都是被动过。ls命令可以查看那些文件是最近被动过的。注意,使用head是为了限制输出数量,只输出最近动过的文件(默认10个)
$ ls -alt|head
total 29837
-rw------- 1 afis system 592 Oct 10 10:12 .sh_history
-rw-r--r-- 1 afis system 75 Oct 10 10:08 errlog.txt
-rwxr-xr-x 1 afis system 1467 Oct 9 09:48 .profile
drwxr-x--x 11 afis system 8192 Oct 8 13:21 .
drwxr-xr-x 2 afis system 8192 Sep 26 13:21 unixsvr20060925
drwxr-xr-x 2 afis system 8192 Sep 25 16:59 unixsvr20060921
-rw-r--r-- 1 afis system 15 Sep 22 16:52 logfile.txt
-rw------- 1 afis system 15 Sep 22 15:15 nohup.out
-rw-r--r-- 1 afis system 506 Sep 22 11:32 .dxhanziim780.tmp
-l 选项显示文件的详请,包括修改时间,-t 选项会让结果按照被动过的日期排序,但是显示中的时间仍然是修改时间。-t 会按照被动过的时间倒排序,因此用head。-a 选项显示你目录下的所有文件。
2.显示最近修改过的文件
$ ls –alc|tail
total 3
-rw-r--r-- 1 afis system 2 Oct 10 10:34 1.txt
-rw-r--r-- 1 afis system 2 Oct 10 10:35 2.txt
-rw-r--r-- 1 afis system 2 Oct 10 10:35 3.txt
3.删除未修改的文件
例如,删除5天以上未修改的归档文件:
/usr/bin/find $DBA/$ORACLE_SID/arch/arch_prod*.arc -ctime +5 -exec rm {} \
注意,试验上面的命令的时候要慎重。另外也要检查路径是否的确存在。
4.显示文件大小(512字节块)
有的时候我们需要快速找到比较大的trace或者core dump文件。通过使用du命令,可以显示文件的大小,单位是512字节。如果要以kb来显示,那么可以用 -k 参数
# du -s * |sort -n|tail
31288 archlog269.arc.Z
34000 archlog253.arc.Z
34480 archlog256.arc.Z
35464 archlog252.arc.Z
36696 archlog255.arc.Z
37400 archlog258.arc.Z
37456 archlog263.arc.Z
38576 archlog270.arc.Z
39248 archlog267.arc.Z
102408 archlog272.arc.Z
如果我们要查看某个目录的总大小,可以用 du -sk 命令。例如
# du -sk /home/oracle
2353
5.定位包含特定字符串的文件
可以通过使用find和grep命令来查找文件中含有特定字符串的文件。例如,假设你想查脚本中含有v$session的文件。你可以执行下面的命令,Unix将会在你当前目录和所有子目录下在扩展名是sql的文件中查找:
HBZW> find . -name "*.sql" -print|xargs grep -i v\$session
./script/test.sql:select * from v$session;
下面是这条命令的解释:
find .
在当前目录和所有子目录下查找
-name "*.sql"
查找扩展名是sql的文件
-print
实际显示文件列表。输出被piped 到xargs
xargs
将每个文件的内容传给后面的命令
grep -i v\$session
过滤文件内容,只显示含有v$sessoin的行,-i 选项的含义是不区分大小写。
6.查找最近创建的文件
下面的命令查找1天内创建的文件。
HBZW> find . -mtime -1 -print
./script
./script/test.sql
./script/watch.sql
./script/haha.txt
举一反三,如果想查1天以上创建的文件,就用+1选项
7.查找系统中的大文件
下面的命令查找大于10000字节的文件:
# find . -size +10000c -print
如果不加c,那么就是查文件大于10000个块(512字节)的文件。有的Unix下可以加k,单位就是kb。
8.查找大小在某个区间内的文件:
例如,查找大小在100到120个字节的文件
# find . -size +100c -size -120c -print
如果要查找大小正好是多大的文件,可以这样:
# find . -size 100c -print
上面的命令查找大小正好是100个字节的文件。