二周第五次课

2.23/2.24/2.25find命令

2.26文件名后缀

2.23/2.24/2.25find命令

find是一个搜索文件的命令,还有其他的搜索命令。

which可以搜索一个命令的路径,是从环境变量中找的这些命令在哪里。

[root@tianqi-01 ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[root@tianqi-01 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@tianqi-01 ~]# 

whereis也可以搜索一个文件在哪里,但是不常用。它可以搜,但搜的不全,是在一个准备好的库(固定时间段更新),只要库更新了,才能找到这个文件。

[root@tianqi-01 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@tianqi-01 ~]# 

locate命令和whereis命令相似,刚开始没有安装,安装需要使用命令yum install -y mlocate。

只用locate命令,会显示没有指定任何搜索模式。

locate安装了,但是还用不了,会提示还没有产生/var/lib/mlocate.db文件。

[root@tianqi-01 ~]# locate
bash: locate: command not found...
[root@tianqi-01 ~]# yum install -y mlocate
Loaded plugins: fastestmirror
base                                  | 3.6 kB     00:00     
epel/x86_64/metalink                  | 8.0 kB     00:00     
epel                                  | 4.7 kB     00:00     
extras                                | 3.4 kB     00:00     
updates                               | 3.4 kB     00:00     
(1/3): extras/7/x86_64/primary_db       | 145 kB   00:00     
(2/3): epel/x86_64/updateinfo           | 857 kB   00:09     
(3/3): epel/x86_64/primary_db           | 6.1 MB   02:21     
Loading mirror speeds from cached hostfile
 * epel: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package mlocate.x86_64 0:0.26-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================
 Package      Arch        Version            Repository
                                                        Size
=============================================================
Installing:
 mlocate      x86_64      0.26-6.el7         base      113 k

Transaction Summary
=============================================================
Install  1 Package

Total download size: 113 k
Installed size: 378 k
Downloading packages:
mlocate-0.26-6.el7.x86_64.rpm           | 113 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mlocate-0.26-6.el7.x86_64                 1/1 
  Verifying  : mlocate-0.26-6.el7.x86_64                 1/1 

Installed:
  mlocate.x86_64 0:0.26-6.el7                                

Complete!
[root@tianqi-01 ~]# locate
locate: no pattern to search for specified
[root@tianqi-01 ~]# locate ls
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

上面的路径是一个数据库,会在每天凌晨四点更新一次,如果要手动更新,需要使用命令updatedb,很快会生成,因为是新系统,系统里的文件不多。此时再使用命令locate ls,会出来很多东西。

/usr/share/locale/lt/LC_MESSAGES/policycoreutils.mo
/usr/share/locale/lt/LC_MESSAGES/pulseaudio.mo
/usr/share/locale/lt/LC_TIME/coreutils.mo
/usr/share/locale/lt_LT/LC_MESSAGES/policycoreutils.mo
/usr/share/locale/lv/LC_MESSAGES/diffutils.mo
/usr/share/locale/lv/LC_MESSAGES/osinfo-db-tools.mo
/usr/share/locale/lv/LC_MESSAGES/policycoreutils.mo
/usr/share/locale/lv_LV/LC_MESSAGES/policycoreutils.mo
/usr/share/locale/mai/LC_MESSAGES/osinfo-db-tools.mo
/usr/share/locale/mai/LC_MESSAGES/policycoreutils.mo

此时ls一下,会有一个123目录,然后通过命令locate 123可以搜到这个目录,它会列出带123(目录或者文件)的所有路径。

[root@tianqi-01 ~]# ls
111         234                split_dir  test.sh
123         2.txt              test1.txt  test.txt
1_hard.txt  5                  test2.txt
1.sh        “5”                testb.txt
1_soft.txt  anaconda-ks.cfg.1  testdir
[root@tianqi-01 ~]# locate 123
/root/123
/root/123/aminglinux.log
/root/123/yum.log
/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/media/dvb-frontends/cx24123.ko.xz
/usr/lib64/gconv/IBM1123.so
/usr/share/doc/ipxe-roms-qemu-20170123
/usr/share/doc/ipxe-roms-qemu-20170123/COPYING
/usr/share/doc/ipxe-roms-qemu-20170123/COPYING.GPLv2
/usr/share/icons/Adwaita/cursors/9081237383d90e509aa00f00170e968f
/usr/share/man/man1/perl5123delta.1.gz
/usr/share/osinfo/device/pcisig.com/pci-1234-1111.xml
/usr/share/perl5/pod/perl5123delta.pod
/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-123.def
/var/log/123
[root@tianqi-01 ~]# 

whereis、locate用的都不多,了解即可,which偶尔用一下,下面才是主角find命令。

下面是几个需要了解的快捷键。

命令ctrl l用于清屏,把光标定位在第一段的开头。

命令ctrl d用于退出一个终端,相当于执行了exit和logout命令。

命令ctrl c用于终止一个命令。

命令ctrl u用于删除光标之前的内容。

命令ctrl d用于向后删,但是是一个一个的删,但用的不多。

命令ctrl e用于把光标移到行尾,然后再ctrl u可以删除整行。

命令ctrl a用于把光标移到一行的头部。

知道一个文件的名字,也知道大致位置(但不精确),可以使用命令

find pathname -name "filename"

[root@tianqi-01 ~]# find /etc -name "sshd_config"
/etc/ssh/sshd_config
[root@tianqi-01 ~]# 

文件名记得不清楚,还可以模糊搜索。

[root@tianqi-01 ~]# find /etc -name "sshd*"
/etc/ssh/sshd_config
/etc/systemd/system/multi-user.target.wants/sshd.service
/etc/sysconfig/sshd
/etc/pam.d/sshd
[root@tianqi-01 ~]# 

它会把带sshd的全部搜出来,不管是文件还是目录。

可以指定搜索的是目录。

find pathname -type d "filename"(搜索目录)

find pathname -type f "filename"(搜索普通文件)

选项l代表软连接文件,s代表socket文件,c代表c文件,b代表blog文件。

[root@tianqi-01 ~]# find /etc -type f -name "sshd*"
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/etc/pam.d/sshd
[root@tianqi-01 ~]# 

可以使用命令find /etc/ -type l搜一下软连接文件。

[root@tianqi-01 ~]# find /etc/ -type l
/etc/mtab
/etc/pki/ca-trust/source/ca-bundle.legacy.crt
/etc/pki/java/cacerts
/etc/pki/tls/cert.pem
/etc/pki/tls/certs/ca-bundle.crt
/etc/pki/tls/certs/ca-bundle.trust.crt
/etc/redhat-release
/etc/system-release
/etc/favicon.png
/etc/systemd/system/multi-user.target.wants/remote-fs.target
/etc/systemd/system/multi-user.target.wants/NetworkManager.service
/etc/systemd/system/multi-user.target.wants/crond.service
/etc/systemd/system/multi-user.target.wants/tuned.service
/etc/fonts/conf.d/65-nonlatin.conf
/etc/fonts/conf.d/69-unifont.conf
/etc/fonts/conf.d/80-delicious.conf
/etc/fonts/conf.d/90-synthetic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/libvirt/qemu/networks/autostart/default.xml
[root@tianqi-01 ~]# 

然后发现/etc/rc2.d确实是软连接文件。

[root@tianqi-01 ~]# ls -l /etc/rc2.d
lrwxrwxrwx. 1 root root 10 Nov 21 16:47 /etc/rc2.d -> rc.d/rc2.d

在搜一下/dev下有没有b文件。

[root@tianqi-01 ~]# find /dev/ -type b
/dev/sr0
/dev/sda3
/dev/sda2
/dev/sda1
/dev/sda
[root@tianqi-01 ~]# 

具体查看一下/dev/sda3文件。

[root@tianqi-01 ~]# ll /dev/sda3
brw-rw---- 1 root disk 8, 3 Dec 15 22:26 /dev/sda3
[root@tianqi-01 ~]# 

再搜一下/dev下有没有c文件,不仅有,而且很多。

[root@tianqi-01 ~]# find /dev/ -type c
/dev/vsock
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
/dev/vcs4
/dev/vcsa3
/dev/vcs3
/dev/vcsa2
/dev/vcs2
/dev/dmmidi
/dev/midi
/dev/sg1
/dev/sg0
/dev/vmci
/dev/ppp
/dev/vcsa1
/dev/vcs1
/dev/vcsa
/dev/vcs
/dev/tty0
/dev/console
/dev/tty
/dev/oldmem
/dev/kmsg
/dev/urandom
/dev/random
/dev/full
/dev/zero
/dev/port
/dev/null
/dev/mem
/dev/vga_arbiter
[root@tianqi-01 ~]#

具体查看/dev/mem。

[root@tianqi-01 ~]# ll /dev/mem
crw-r----- 1 root kmem 1, 1 Dec 15 22:26 /dev/mem
[root@tianqi-01 ~]# 

find / -type -name -mtime -ctime -atime

stat命令用来查看一个文件的具体信息,如名字、大小、多用的块、设备、inode、硬链接、权限等等,比ls -l更加的清晰,看的最主要的也是最后三行。

[root@tianqi-01 ~]# ls
111         234                split_dir  test.sh
123         2.txt              test1.txt  test.txt
1_hard.txt  5                  test2.txt
1.sh        “5”                testb.txt
1_soft.txt  anaconda-ks.cfg.1  testdir
[root@tianqi-01 ~]# stat 2.txt
  File: ‘2.txt’
  Size: 2058          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 34642929    Links: 1
Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-14 04:25:24.187134299 -0500
Modify: 2017-12-14 04:25:24.188134316 -0500
Change: 2017-12-14 04:25:24.191134365 -0500
 Birth: -
[root@tianqi-01 ~]# 

-atime +n/-n:表示访问或执行时间大于或小于n天的文件。

-ctime +n/-n:表示表示写入、更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件。最近改动,改动的是Inode信息,如改了权限、文件名、时间。

-mtime +n/-n:表示表示写入时间大于或小于n天的文件,该参数用得最多。

创建时间,最近更改,改动的是文件内容。

下面给2.txt改动一下权限,下面看到的是ctime发生了变化。

[root@tianqi-01 ~]# chmod 700 2.txt
[root@tianqi-01 ~]# stat 2.txt
  File: ‘2.txt’
  Size: 2058          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 34642929    Links: 1
Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-14 04:25:24.187134299 -0500
Modify: 2017-12-14 04:25:24.188134316 -0500
Change: 2017-12-16 01:44:22.275509817 -0500        改动的是这里
 Birth: -
[root@tianqi-01 ~]# 

如果改动了文件内容,如给文件追加一行,此时可以看到改动的是mtime(modify time)和ctime(chang time)。

[root@tianqi-01 ~]# echo "121212" >> 2.txt        给文件追加一行
[root@tianqi-01 ~]# stat 2.txt
  File: ‘2.txt’
  Size: 2065          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 34642929    Links: 1
Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-14 04:25:24.187134299 -0500
Modify: 2017-12-16 01:47:26.088988302 -0500        改动的是这里
Change: 2017-12-16 01:47:26.088988302 -0500        改动的是这里
 Birth: -
[root@tianqi-01 ~]# 

更改文件内容,ctime一定会变,因为ctime记录的是文件的属性(包括大小),大小都变了,ctime当然会变。mtime也会变化,因为mtime就是写入的时间。

如果只改了权限,ctime一定会发生变化,但文件内容没有发生变化,mtime也不会发生变化。当然,atime访问或者执行时间也不会发生变化。

atime是访问或者执行文件的时间,虽然追加了一行,文件内容改变了,但是还没有看文件。cat一下文件,说明访问了文件,此时atime会发生变化。

[root@tianqi-01 ~]# cat 2.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tianqi:x:1000:1000::/home/tianqi:/bin/bash
test:x:1001:1001::/home/test:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
colord:x:996:994:User for colord:/var/lib/colord:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
geoclue:x:995:992:User for geoclue:/var/lib/geoclue:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:988::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
aming:x:1002:1002::/home/aming:/bin/bash
user1:x:1003:1003::/home/user1:/bin/bash
121212
[root@tianqi-01 ~]# stat 2.txt
  File: ‘2.txt’
  Size: 2065          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 34642929    Links: 1
Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-16 01:54:48.249544764 -0500        时间发生了变化
Modify: 2017-12-16 01:47:26.088988302 -0500        没有变化
Change: 2017-12-16 01:47:26.088988302 -0500        没有变化
 Birth: -
[root@tianqi-01 ~]# 

查找根目录下改动时间或创建时间在1天以内的文件,有很多。

[root@tianqi-01 ~]#find  / -tyep f -mtime -1,-1代表的是1天以内,如果是+1,代表的是》1天,1天往后的。

/sys/module/shpchp/sections/__param
/sys/module/shpchp/sections/__mcount_loc
/sys/module/shpchp/sections/.rodata
/sys/module/shpchp/sections/.strtab
/sys/module/shpchp/sections/.symtab
/sys/module/shpchp/sections/.gnu.linkonce.this_module
/sys/module/shpchp/sections/.rodata.str1.1
/sys/module/shpchp/sections/.rodata.str1.8
/sys/module/shpchp/sections/.note.gnu.build-id
/sys/module/shpchp/sections/.exit.text
/sys/module/shpchp/parameters/shpchp_debug
/sys/module/shpchp/parameters/shpchp_poll_mode
/sys/module/shpchp/parameters/shpchp_poll_time
/sys/module/shpchp/refcnt
/sys/module/shpchp/uevent

下面具体查看一个文件的mtime,ls -l一下。

[root@tianqi-01 ~]# ls -l /var/spool/postfix/pid/master.pid
-rw------- 1 root root 33 Dec 15 22:27 /var/spool/postfix/pid/master.pid

范围可以再缩写一些,使用如下命令,就下面的几个文件在1天以内发生了变化。

[root@tianqi-01 ~]# find /etc/ -type f -mtime -1
/etc/resolv.conf
/etc/group
/etc/gshadow
/etc/tuned/active_profile
[root@tianqi-01 ~]# 

还可以查看atime、ctime等等,atime的很多,ctime的不是很多。
[root@tianqi-01 ~]# find /etc/ -type f -ctime -1
/etc/resolv.conf
/etc/cron.daily/mlocate
/etc/group
/etc/gshadow
/etc/group-
/etc/gshadow-
/etc/tuned/active_profile
/etc/updatedb.conf
[root@tianqi-01 ~]# 

find还可有特殊的需求,加多个判断条件,它们是并且的关系。

[root@tianqi-01 ~]# find / etc/ -type f -ctime -1 -name "*.conf"
/run/NetworkManager/resolv.conf
/run/tmpfiles.d/kmod.conf
/run/systemd/system/session-2.scope.d/50-TasksMax.conf
/run/systemd/system/session-2.scope.d/50-SendSIGHUP.conf
/run/systemd/system/session-2.scope.d/50-After-systemd-user-sessions\x2eservice.conf
/run/systemd/system/session-2.scope.d/50-After-systemd-logind\x2eservice.conf
/run/systemd/system/session-2.scope.d/50-Description.conf
/run/systemd/system/session-2.scope.d/50-Slice.conf
/run/systemd/system/session-1.scope.d/50-TasksMax.conf
/run/systemd/system/session-1.scope.d/50-SendSIGHUP.conf
/run/systemd/system/session-1.scope.d/50-After-systemd-user-sessions\x2eservice.conf
/run/systemd/system/session-1.scope.d/50-After-systemd-logind\x2eservice.conf
/run/systemd/system/session-1.scope.d/50-Description.conf
/run/systemd/system/session-1.scope.d/50-Slice.conf
/run/systemd/system/user-0.slice.d/50-TasksMax.conf
/run/systemd/system/user-0.slice.d/50-After-systemd-user-sessions\x2eservice.conf
/run/systemd/system/user-0.slice.d/50-After-systemd-logind\x2eservice.conf
/run/systemd/system/user-0.slice.d/50-Description.conf
/etc/resolv.conf
/etc/updatedb.conf
/var/lib/libvirt/dnsmasq/default.conf
find: ‘etc/’: No such file or directory
[root@tianqi-01 ~]# 

上面是并且的意思,也可以改成或者的意思,选项之间加-o即可。

find / etc/ -type f -o -ctime -1 -o -name "*.conf",查找到的文件有很多,-o是or的意思,用的不多。

find的选项有-type、-name、-atime、-ctime、-mtime,其中-type、-name、-mtime较为常用。

find有一个不常用但很有用的知识点,硬链接不太好找,ls -l一下,创建一个硬链接。

[root@tianqi-01 ~]# ls -l
total 36
drwxr-xr-x  2 root root     20 Dec 14 02:36 111
drwxr-xr-x  2 root root     43 Dec 14 02:36 123
-rw-r--r--  1 root root      0 Dec 14 02:58 1_hard.txt
-rw-r--r--  1 root root     13 Dec 12 04:06 1.sh
lrwxrwxrwx  1 root root      5 Dec 14 02:59 1_soft.txt -> 1.txt
drwxrwxr-x  4 root user1    66 Dec 13 20:22 234
-rwx------  1 root root   2065 Dec 16 01:47 2.txt
-rw-r--r--. 1 root root      0 Nov 22 07:50 5
-rw-r--r--. 1 root root      0 Nov 22 07:50 “5”
-rw-------. 1 root root  13834 Dec 12 09:02 anaconda-ks.cfg.1
drwxr-xr-x. 2 root root     53 Nov 24 08:51 split_dir
-rw-r--r--. 1 root root      0 Dec  7 08:11 test1.txt
-rw-r--r--. 1 root root      0 Nov 24 09:03 test2.txt
-rw-r--r--. 1 root root      8 Nov 24 07:24 testb.txt
drwxr-xr-x. 2 root root      6 Nov 24 09:03 testdir
-rwxr-xr-x  1 root root    185 Dec 12 04:28 test.sh
-rw-r--r--. 1 root root    889 Nov 21 09:15 test.txt
[root@tianqi-01 ~]# ln 1_hard.txt /tmp/1.txt.bak
[root@tianqi-01 ~]# ll 1_hard.txt

-rw-r--r-- 2 root root 0 Dec 14 02:58 1_hard.txt
[root@tianqi-01 ~]# 

上面的红色的2,说明有2个文件使用了相同的inode,下面查看下具体的inode。

[root@tianqi-01 ~]# ls -i 1_hard.txt
34642923 1_hard.txt

要想找到硬链接,需要找到使用这个inode号的文件,-inum代表的是inode号。

[root@tianqi-01 ~]# find / -inum 34642923
/root/1_hard.txt
/tmp/1.txt.bak

使用如下命令可以查看1天以前改动的文件,但是范围还是过大,使用选项-mmin -60可以查看1小时以前的。

[root@tianqi-01 ~]# find /root/ -type f -mtime -1
/root/2.txt
/root/1.txt
[root@tianqi-01 ~]# 

[root@tianqi-01 ~]# find /root/ -type f -mmin -60        60代表的是60分钟
/root/2.txt
/root/1.txt

下面查看一下文件的具体时间

[root@tianqi-01 ~]# ls -l /root/2.txt
-rwx------ 1 root root 2065 Dec 16 01:47 /root/2.txt
[root@tianqi-01 ~]# date
Sat Dec 16 02:35:08 EST 2017

60000分钟以前改动的文件就多了。

[root@tianqi-01 ~]# find /root/ -type f -mmin -60000
/root/test.txt
/root/.bash_history
/root/5
/root/“5”
/root/testb.txt
/root/split_dir/passwd
/root/split_dir/xaa
/root/split_dir/xab
/root/split_dir/xac
/root/test2.txt
/root/test1.txt
/root/.ssh/quthorized_keys
/root/.ssh/authorized_keys
/root/.ssh/known_hosts
/root/1.sh
/root/test.sh
/root/anaconda-ks.cfg.1
/root/.lesshst
/root/234/aminglinux
/root/234/aminglinux111
/root/1_hard.txt
/root/2.txt
/root/.viminfo
/root/1.txt
[root@tianqi-01 ~]# 

使用选项-exec ls -l {} \,可以在列出文件的时候列出具体的更改时间。

find /root/ -type f -mmin -60000 -exec ls -l {} \;{}代表的是find查到的全部文件

使用如下命令可以给文件改名字

[root@tianqi-01 ~]# find /root/ -type f -mmin -180 -exec mv {} {}.bak \;
[root@tianqi-01 ~]# find /root/ -type f -mmin -180
/root/2.txt.bak
/root/1.txt.bak

使用-size选项可以查找文件的大小

[root@tianqi-01 ~]# find /root/ -size +10k        文件>10k
/root/anaconda-ks.cfg.1
[root@tianqi-01 ~]# find /root/ -size -10k        文件<10k
/root/
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/test.txt
/root/.bash_history
/root/5
/root/“5”
/root/testb.txt
/root/split_dir
/root/split_dir/passwd
/root/split_dir/xaa
/root/split_dir/xab
/root/split_dir/xac
/root/testdir
/root/test2.txt
/root/.pki
/root/.pki/nssdb
/root/.cache
/root/test1.txt
/root/.ssh
/root/.ssh/quthorized_keys
/root/.ssh/authorized_keys
/root/.ssh/known_hosts
/root/1.sh
/root/test.sh
/root/.lesshst
/root/234
/root/234/aminglinux
/root/234/am
/root/234/aminglinux111
/root/234/am1
/root/111
/root/111/aming3
/root/123
/root/123/aminglinux.log
/root/123/yum.log
/root/1_hard.txt
/root/1_soft.txt
/root/.viminfo
/root/2.txt.bak
/root/1.txt.bak
[root@tianqi-01 ~]# 

下面检验一下文件的实际大小

[root@tianqi-01 ~]# find /root/ -type f -size -10k -exec ls -lh {} \;
-rw-r--r--. 1 root root 18 Dec 28  2013 /root/.bash_logout
-rw-r--r--. 1 root root 176 Dec 28  2013 /root/.bash_profile
-rw-r--r--. 1 root root 176 Dec 28  2013 /root/.bashrc
-rw-r--r--. 1 root root 100 Dec 28  2013 /root/.cshrc
-rw-r--r--. 1 root root 129 Dec 28  2013 /root/.tcshrc
-rw-r--r--. 1 root root 889 Nov 21 09:15 /root/test.txt
-rw-------. 1 root root 8.6K Dec 14 09:34 /root/.bash_history
-rw-r--r--. 1 root root 0 Nov 22 07:50 /root/5
-rw-r--r--. 1 root root 0 Nov 22 07:50 /root/“5”
-rw-r--r--. 1 root root 8 Nov 24 07:24 /root/testb.txt
-rw-r--r--. 1 root root 928 Nov 24 08:45 /root/split_dir/passwd
-rw-r--r--. 1 root root 385 Nov 24 08:51 /root/split_dir/xaa
-rw-r--r--. 1 root root 504 Nov 24 08:51 /root/split_dir/xab
-rw-r--r--. 1 root root 39 Nov 24 08:51 /root/split_dir/xac
-rw-r--r--. 1 root root 0 Nov 24 09:03 /root/test2.txt
-rw-r--r--. 1 root root 0 Dec  7 08:11 /root/test1.txt
-rw-r--r--. 1 root root 795 Dec 10 02:47 /root/.ssh/quthorized_keys
-rw-r--r-- 1 root root 398 Dec 11 02:57 /root/.ssh/authorized_keys
-rw-r--r-- 1 root root 177 Dec 11 03:36 /root/.ssh/known_hosts
-rw-r--r-- 1 root root 13 Dec 12 04:06 /root/1.sh
-rwxr-xr-x 1 root root 185 Dec 12 04:28 /root/test.sh
-rw------- 1 root root 51 Dec 12 08:48 /root/.lesshst
-rw-rw-r-- 1 root user1 0 Dec 13 20:16 /root/234/aminglinux
-rw-rw-r-- 1 root root 0 Dec 13 20:21 /root/234/aminglinux111
-rw-r--r-- 2 root root 0 Dec 14 02:58 /root/1_hard.txt
-rw------- 1 root root 4.1K Dec 14 04:25 /root/.viminfo
-rwx------ 1 root root 2.1K Dec 16 01:47 /root/2.txt.bak
-rw-r--r-- 1 root root 0 Dec 16 02:26 /root/1.txt.bak

[root@tianqi-01 ~]# find /root/ -type f -size +10k -exec ls -lh {} \;    文件>10k
-rw-------. 1 root root 14K Dec 12 09:02 /root/anaconda-ks.cfg.1

k用小写,M用大写

find所用选项总结:find -type -mtime -size -mmin -o -exec -name

2.26文件后缀名

linux中命令是区分大小写的。

[root@tianqi-01 ~]# LS
bash: LS: command not found...
Similar command is: 'ls'
[root@tianqi-01 ~]# ls
111  1_hard.txt  1_soft.txt  234        5    anaconda-ks.cfg.1  test1.txt  testb.txt  test.sh
123  1.sh        1.txt.bak   2.txt.bak  “5”  split_dir          test2.txt  testdir    test.txt
[root@tianqi-01 ~]# 

linux中文件后缀名不太严谨,只是习惯上把相同类型的文件做相同的后缀名。

例如:.txt做普通文件,.log做日志文件,.conf做配置文件。

[root@tianqi-01 ~]# echo $LANG
en_US.UTF-8 

[root@tianqi-01 ~]# stat 1.txt.bak
  File: ‘1.txt.bak’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 34642960    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-16 02:26:02.101626309 -0500
Modify: 2017-12-16 02:26:02.101626309 -0500
Change: 2017-12-16 02:46:09.743380265 -0500
 Birth: -

正是因为语言是英文,所以三个时间才显示的更加准确,好区分。

复制另一个客户端,将LANG=zh_CN.UTF-8,改成中文以后,再查看将变成以下情形。

[root@tianqi-01 ~]# LANG=zh_CN.UTF-8
[root@tianqi-01 ~]# echo $LANG

zh_CN.UTF-8
[root@tianqi-01 ~]# stat 2.txt.bak
  文件:"2.txt.bak"
  大小:2065          块:8          IO 块:4096   普通文件
设备:803h/2051d    Inode:34642929    硬链接:1
权限:(0700/-rwx------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2017-12-16 01:54:48.249544764 -0500
最近更改:2017-12-16 01:47:26.088988302 -0500
最近改动:2017-12-16 02:46:09.743380265 -0500
创建时间:-

转载于:https://my.oschina.net/u/3744518/blog/1590799

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值