文件查找

1.which
用于显示命令的完全路径
[root@localhost ~]# which ls
alias ls='ls --color=tty'
        /bin/ls                               //命令的完全路径是/bin/ls
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost ~]# which cd
/usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
which 查找命令的路径是环境变量规定的路径

2.whereis 用于查找命令的的路径、该文件的帮助文件、该文件的相关程序的路径

[root@localhost ~]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

3.locate

所有包含关键字段的文件和目录都会显示。locate是搜索一个数据库,数据库里包括当前目录。
[root@localhost ~]# locate passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/lib/security/pam_passwdqc.so
/lib/security/pam_unix_passwd.so
……
新建立的文件的目录无法自动写入数据库,需手动更新数据库
[root@localhost ~]# touch Loveyouforever
[root@localhost ~]# locate Loveyouforever//无法找到文件目录
[root@localhost ~]# updatedb//手动更新数据库
[root@localhost ~]# locate Loveyouforever
/root/Loveyouforever//找到文件目录

4.find

非常强大的查找命令,现对花费时间会很长,非常消耗资源。很常用
格式
find [目录] [选项] [条件表达式] [-exec,-ok……]指令 {} \;
find    /etc    -name    passwd            -exec                ls -l   {}  \;
在目录/etc下查找name是passwd                     放在{}给ls -l执行     执行结束
选项:
-user:查找文件拥有者符合条件的文件
-nouser :没有拥有者的文件
[root@localhost ~]# su - zhx
[zhx@localhost ~]$ find ./ -user zhx -exec ls -l {}  \;
总计 8
drwxrwxr-x 2 zhx zhx 4096 01-19 00:44 zhx
-rw-r--r-- 1 zhx zhx 124 01-19 00:43 ./.bashrc
-rw-r--r-- 1 zhx zhx 515 01-19 00:43 ./.emacs
总计 16
drwxr-xr-x 2 zhx zhx 4096 01-19 00:43 extensions
drwxr-xr-x 2 zhx zhx 4096 01-19 00:43 plugins
总计 0
总计 0
-rw------- 1 zhx zhx 56 01-19 00:45 ./.bash_history
-rw-r--r-- 1 zhx zhx 176 01-19 00:43 ./.bash_profile
总计 0
-rw-r--r-- 1 zhx zhx 33 01-19 00:43 ./.bash_logout
总计 8
drwxr-xr-x 2 zhx zhx 4096 01-19 00:43 Autostart
总计 0
-rw-r--r-- 1 zhx zhx 381 01-19 00:43 ./.kde/Autostart/.directory
-rw-r--r-- 1 zhx zhx 658 01-19 00:43 ./.zshrc
[root@localhost ~]# userdel zhx//删除用户
[root@localhost ~]# find /home/zhx -nouser -exec ls -l {} \;在/home/zhx 查找孤儿文件,因为zhx已被删除 zhx家目录下的所有文件都属于孤儿文件
总计 8
drwxrwxr-x 2 500 500 4096 01-19 00:44 zhx
-rw-r--r-- 1 500 500 124 01-19 00:43 /home/zhx/.bashrc
-rw-r--r-- 1 500 500 515 01-19 00:43 /home/zhx/.emacs
总计 16
drwxr-xr-x 2 500 500 4096 01-19 00:43 extensions
drwxr-xr-x 2 500 500 4096 01-19 00:43 plugins
总计 0
总计 0
-rw------- 1 500 500 98 01-19 00:46 /home/zhx/.bash_history
-rw-r--r-- 1 500 500 176 01-19 00:43 /home/zhx/.bash_profile
总计 0
-rw-r--r-- 1 500 500 33 01-19 00:43 /home/zhx/.bash_logout
总计 8
drwxr-xr-x 2 500 500 4096 01-19 00:43 Autostart
总计 0
-rw-r--r-- 1 500 500 381 01-19 00:43 /home/zhx/.kde/Autostart/.directory
-rw-r--r-- 1 500 500 658 01-19 00:43 /home/zhx/.zshrc
[root@localhost ~]#

 

-group -nogroup找属组满足条件的文件  用法同-user -nouser

-perm 查找权限满足条件的文件
find -perm num  查找权限是num的文件
       -perm -num 查找权限全部包括num的文件
       -perm +num 查找权限部分包括num的文件

[root@localhost ~]# find / -perm 777 -ok ls -l {} \;|more

< ls ... /bin/sh > ? < ls ... /bin/traceroute6 > ? < ls ... /bin/egrep > ? lrwxrwxrwx 1 root root 10 01-15 04:51 /bin/traceroute6 -> traceroute

-size 查找文件大小满足条件的文件
-size +num (单位)  大于num(单位)的文件
-size -num(单位)     小于num(单位)的文件
[root@localhost ~]# dd if=/dev/zero of=/root/hello bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 1.01237 seconds, 207 MB/s
[root@localhost ~]# find ./ -size +100M -exec ls -l {} \;
-rw-r--r-- 1 root root 209715200 01-19 01:05 ./hello

-type查找某一类型的文件,主要有以下几种

条件
b 块设备文件
d  目录
c 字符设备文件
p 管道文件
l 链接文件
f 普通文件

find -mtime -n +n

-n n天之内
+n n天以为
n n天以前的 24时小时以内

打包归档及压缩
1.unzip,zip
-l列出压缩文件多包含的内容
-v显示详细的压缩过程
[root@localhost ~]# zip -lv cc.zip cc//压缩cc 为cc.zip
  adding: cc/   (in=0) (out=0) (stored 0%)
total bytes=0, compressed=0 -> 0% savings
[root@localhost ~]# ls
anaconda-ks.cfg  cc.zip   install.log         Loveyouforever
cc               Desktop  install.log.syslog  小鸟chacha初学linux.ncd

2.gzip和zcat

-#:压缩等级。-1最快,压缩比最差;-9最慢,压缩比最小
[root@localhost ~]# gzip -9 Loveyouforever
[root@localhost ~]# ls
anaconda-ks.cfg  Desktop      install.log.syslog  小鸟chacha初学linux.ncd
cc               install.log  Loveyouforever.gz
[root@localhost temp]# zcat redhat.txt.gz
what do you want to do?
shut up

3.tar

-c 建立压缩文件
-x解压文件
-v显示压缩 解压过程
-f 紧跟压缩文件名称
-t 查看压缩文件
[root@localhost /]# tar -cvf root.tar /root   cvf压缩的常用组合
tar: 从成员名中删除开头的“/”
/root/
/root/小鸟chacha初学linux.ncd
/root/.metacity/
/root/.metacity/sessions/
/root/.metacity/sessions/1326903016-2435-745770735.ms
/root/.metacity/sessions/1326578140-2447-2422197700.ms
/root/.metacity/sessions/1326653136-2469-468411399.ms
/root/.metacity/sessions/1326575460-2584-1184827547.ms
/root/.metacity/sessions/1326744477-2478-3945392455.ms
/root/.config/
/root/.config/gtk-2.0/
/root/.config/gtk-2.0/gtkfilechooser
/root/.nautilus/
/root/.nautilus/metafiles/
……
[root@localhost /]# tar -tvf root.tar //查看tar文件中的内容
drwxr-x--- root/root         0 2012-01-19 02:34:28 root/
-rw------- root/root     22215 2012-01-19 02:34:28 root/小鸟chacha初学linux.ncd
drwx------ root/root         0 2012-01-15 05:11:00 root/.metacity/
drwx------ root/root         0 2012-01-19 00:10:16 root/.metacity/sessions/
-rw-r--r-- root/root       355 2012-01-19 00:10:16 root/.metacity/sessions/1326903016-2435-745770735.ms
-rw-r--r-- root/root       355 2012-01-15 05:55:40 root/.metacity/sessions/1326578140-2447-2422197700.ms
-rw-r--r-- root/root       355 2012-01-16 02:45:36 root/.metacity/sessions/1326653136-2469-468411399.ms
-rw-r--r-- root/root        82 2012-01-15 05:11:00 root/.metacity/sessions/1326575460-2584-1184827547.ms
-rw-r--r-- root/root        82 2012-01-17 04:07:57 root/.metacity/sessions/1326744477-2478-3945392455.ms
[root@localhost /]# tar --exclude root.tar -cvf root1.tar /root//排除 root.tar 进行压缩
tar: 从成员名中删除开头的“/”
/root/
/root/小鸟chacha初学linux.ncd
/root/.metacity/
/root/.metacity/sessions/
/root/.metacity/sessions/1326903016-2435-745770735.ms
/root/.metacity/sessions/1326578140-2447-2422197700.ms
/root/.metacity/sessions/1326653136-2469-468411399.ms
/root/.metacity/sessions/1326575460-2584-1184827547.ms
/root/.metacity/sessions/1326744477-2478-3945392455.ms
[root@localhost /]# tar -xvf root.tar//解压
root/
root/小鸟chacha初学linux.ncd
root/.metacity/
root/.metacity/sessions/
root/.metacity/sessions/1326903016-2435-745770735.ms
root/.metacity/sessions/1326578140-2447-2422197700.ms
root/.metacity/sessions/1326653136-2469-468411399.ms
root/.metacity/sessions/1326575460-2584-1184827547.ms
root/.metacity/sessions/1326744477-2478-3945392455.ms
root/.config/
root/.config/gtk-2.0/
root/.config/gtk-2.0/gtkfilechooser
root/.nautilus/
[root@localhost /]# tar -xvf root.tar
root/
root/小鸟chacha初学linux.ncd
root/.metacity/
root/.metacity/sessions/
root/.metacity/sessions/1326903016-2435-745770735.ms
root/.metacity/sessions/1326578140-2447-2422197700.ms
root/.metacity/sessions/1326653136-2469-468411399.ms
root/.metacity/sessions/1326575460-2584-1184827547.ms
root/.metacity/sessions/1326744477-2478-3945392455.ms
root/.config/
root/.config/gtk-2.0/
root/.config/gtk-2.0/gtkfilechooser
root/.nautilus/
[root@localhost ~]# tar -zcvf root.tar.gz ./ //打包并且以gzip的方式压缩文件,bzip2只需要改为-jcvf
./
./小鸟chacha初学linux.ncd
./.metacity/
./.metacity/sessions/
./.metacity/sessions/1326903016-2435-745770735.ms
./.metacity/sessions/1326578140-2447-2422197700.ms
./.metacity/sessions/1326653136-2469-468411399.ms
./.metacity/sessions/1326575460-2584-1184827547.ms
./.metacity/sessions/1326744477-2478-3945392455.ms
./.config/
./.config/gtk-2.0/
./.config/gtk-2.0/gtkfilechooser
./.nautilus/
./.nautilus/metafiles/
./.nautilus/metafiles/computer:%2F%2F%2F.xml
./.nautilus/metafiles/file:%2F%2F%2F.xml
./.nautilus/metafiles/file:%2F%2F%2Fmedia.xml
./.nautilus/metafiles/file:%2F%2F%2Froot%2FDesktop.xml
./.nautilus/metafiles/x-nautilus-desktop:%2F%2F%2F.xml
./.nautilus/metafiles/file:%2F%2F%2Froot.xml
./.nautilus/saved2WNYv0
./.eggcups/