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
创建时间:-