file与管道符

来源:互联网 发布:淘宝粉丝红包 编辑:程序博客网 时间:2024/06/07 13:13

file

find [PATH] [option] [action]
   
与时间有关的参数有:-atime -ctime -mtime
    -mtime n
n为数字,意义为在n天之前的“一天之内”被更改过的文件;
    -mtime +n
:列出在n天之前(不含n天本身)被更改过的文件;
    -mtime -n
:列出在n天之内(含n天本身)被更改过的文件名;
    -newer file
file为一个存在的文件,列出比file更新的文件
   
根据属性查找
    -uid n
    -gid n
    -username name
    -groupname name
    -nouser
    -nogroup
   
根据文件权限及名称有关的参数查找
    -name filename
    -type [+/-]size
size大或者小的文件
    -type type
f正规文件,b设备文件,c设备文件,d目录,l连接文件,s socket,p FIFO
    -perm +mode
    -perm -mode

 

关于命令行输出的重定向与管道符
如何管理输出
find /etc -name passwd  > file      ####
重定向正确输出
find /tc -name passwd   2> file     ####
重定向错误输出
find /e /bin /sbin >3333 |cat 3333| wc -l 3333c -name passwd    &> file     ####
重定向所有输出
find /etc -name passwd  >> file     ###
追加正确输出
find /etc -name passwd  2>> file    ####
追加错误输出
find /etc -name passwd  &>> file    ####
追加输出
find /etc -name passwd  > file  2>&1 ####
重新定义错误输出为正确

|  
管道之允许正确输出通过
|tee   
复制一份输出
2>&1 |
转换错误输出为正确再通过管道

/dev/null
相当于系统里的垃圾箱

eg
:让输出的错误和正确结果都存入file(管道符只统计正确的输出,故需要将错误的输出的id号改为正确的id号)
find /etc/ -name passwd 2>&1 >file   //
错的:(故需要将错误的输出的id号改为正确的id号后就扔了漏下来了,传不到file里去)
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[kiosk@foundation31 Desktop]$ cat file
/etc/passwd
/etc/pam.d/passwd

find /etc/ -name passwd >file 2>&1    //
对的
[kiosk@foundation31 Desktop]$ find /etc/ -name passwd >file2>&1
[kiosk@foundation31 Desktop]$ cat file
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
/etc/pam.d/passwd
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation31 Desktop]$ find /etc/ -name passwd 2>&1 |wc -l
19   //
将错误的id改成正确的后,漏下来到管道里去了
[kiosk@foundation31 Desktop]$ find /etc/ -name passwd >file |wc -l
0    //
只是把正确的结果导入到法file中,错误的不经过管道,所以为0
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[kiosk@foundation31 Desktop]$ cat file
/etc/passwd
/etc/pam.d/passwd
[kiosk@foundation31 Desktop]$ find /etc/ -name passwd 2>&1 >file |wc-l
17           //
正确的结果导入file,报错的由于改成了正确的id号,所以进入管道
[kiosk@foundation31 Desktop]$ cat file
/etc/passwd
/etc/pam.d/passwd


find /etc/ -name passwd 2>&1 |tee file22| wc -l
把所有的输出正确和错误的都保存到file22中,并计算所有的行数
ls /bin /sbin >3333 |cat 3333| wc -l 3333

把报错和正确的结果全部保存到 file,并显示条数
find /etc/ -name 2>&1 |tee file|wc -l

把错误的放到/mnt/find.err, 把正确的放进/mnt/find.out
find /etd -name passwd 2>/mnt/find.err 1>/mnt/find.out

 


0 0
原创粉丝点击