软硬连接,find,locate命令

来源:互联网 发布:免费申请域名建立网站 编辑:程序博客网 时间:2024/05/23 18:20

目录

1 硬链接和软链接: 2
(1)硬链接 2
(2)软链接 2
2 Locate和find命令 3
(1)Locate 3
(2)Find (默认精确匹配名称) 3

1 硬链接和软链接:
(1)硬链接
必须在一个分区,两个文件互为源,命硬,删掉一个还有一个。多个文件共享一个inode。是为了节省inode资源。这多个文件的内容是同步的。
[root@foundation4 ~]# cd /home/kiosk/Desktop/
[root@foundation4 Desktop]# touch file
[root@foundation4 Desktop]# ln file newfile
[root@foundation4 Desktop]# ls
file newfile rht-desktop.desktop rht-server.desktop
[root@foundation4 Desktop]# ls -li file newfile
137484361 -rw-r–r–. 2 root root 0 Oct 26 09:32 file
137484361 -rw-r–r–. 2 root root 0 Oct 26 09:32 newfile
[root@foundation4 Desktop]# echo hahaha > file
[root@foundation4 Desktop]# cat file newfile
hahaha
hahaha
[root@foundation4 Desktop]# rm -f file
[root@foundation4 Desktop]# ls
newfile rht-desktop.desktop rht-server.desktop
[root@foundation4 Desktop]# ll newfile
-rw-r–r–. 1 root root 7 Oct 26 09:33 newfile
[root@foundation4 Desktop]# ll -i newfile
137484361 -rw-r–r–. 1 root root 7 Oct 26 09:33 newfile
[root@foundation4 Desktop]#

(2)软链接
可以不在一个分区,只有一个最本质的源文件。删掉源另一个也就失效了。两个文件的inode号是不同的。源文件有100M 链接文件可能只有几十K。链接文件只是访问源文件的一个跳板。
[root@foundation4 Desktop]# touch file
[root@foundation4 Desktop]# ln -s file softfile
[root@foundation4 Desktop]# ls -li
total 8
137484360 -rw-r–r–. 1 root root 0 Oct 26 09:45 file
137473834 -rwxrwxr-x. 1 kiosk kiosk 294 Oct 25 09:10 rht-desktop.desktop
137473837 -rwxrwxr-x. 1 kiosk kiosk 289 Oct 25 09:10 rht-server.desktop
137484369 lrwxrwxrwx. 1 root root 4 Oct 26 09:46 softfile -> file
[root@foundation4 Desktop]# echo kkkkkkkkk > file
[root@foundation4 Desktop]# rm -f fiel
[root@foundation4 Desktop]# cat file softfile
kkkkkkkkk
kkkkkkkkk
[root@foundation4 Desktop]# rm -rf file
[root@foundation4 Desktop]# ls -li
total 8
137473834 -rwxrwxr-x. 1 kiosk kiosk 294 Oct 25 09:10 rht-desktop.desktop
137473837 -rwxrwxr-x. 1 kiosk kiosk 289 Oct 25 09:10 rht-server.desktop
137484369 lrwxrwxrwx. 1 root root 4 Oct 26 09:46 softfile -> file

2 Locate和find命令
(1)Locate
locate filename(只要名字中还有filename这个子串的所有文件和目录都会被列出来。
默认是粗略匹配)
[root@foundation4 Desktop]# touch jjjjjj
[root@foundation4 Desktop]# locate jjjj
[root@foundation4 Desktop]# updatedb
[root@foundation4 Desktop]# locate jjjj
/home/kiosk/Desktop/jjjjjj
[root@foundation4 Desktop]#
可以看到创建文件后,locate不到,因为系统的数据库还没有更新。Updatedb之后就可以locate到了。不过updatedb 对/run /media /tmp /mnt这些目录是屏蔽的。即不更新这里面的相关数据库。
(2)Find (默认精确匹配名称)
* 准备工作:
[root@foundation4 Desktop]# dd if=/dev/zero of=./file1 bs=1024 count=10
10+0 records in
10+0 records out
10240 bytes (10 kB) copied, 0.000396844 s, 25.8 MB/s
[root@foundation4 Desktop]# dd if=/dev/zero of=./file2 bs=1024 count=20
20+0 records in
20+0 records out
20480 bytes (20 kB) copied, 0.000262467 s, 78.0 MB/s
[root@foundation4 Desktop]# dd if=/dev/zero of=./file3 bs=1024 count=30
30+0 records in
30+0 records out
30720 bytes (31 kB) copied, 0.000294664 s, 104 MB/s
[root@foundation4 Desktop]# ll
total 72
-rw-r–r–. 1 root root 10240 Oct 26 10:10 file1
-rw-r–r–. 1 root root 20480 Oct 26 10:10 file2
-rw-r–r–. 1 root root 30720 Oct 26 10:10 file3
-rwxrwxr-x. 1 kiosk kiosk 294 Oct 25 09:10 rht-desktop.desktop
-rwxrwxr-x. 1 kiosk kiosk 289 Oct 25 09:10 rht-server.desktop
[root@foundation4 Desktop]# chown kiosk.kiosk file1

*-name 按名字查找,它会认为你制定的名字是精确的名字
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -name file
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -name file1
/home/kiosk/Desktop/file1
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -name file*
find: paths must precede expression: file2
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
[root@foundation4 Desktop]# ls
file1 file2 file3 files jjjjjj rht-desktop.desktop rht-server.desktop
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -name “file*”
/home/kiosk/Desktop/file1
/home/kiosk/Desktop/file2
/home/kiosk/Desktop/file3
/home/kiosk/Desktop/files
[root@foundation4 Desktop]#
Find 是不是别*的 要用双引号引起来。

  • -user按文件或者目录所属的用户查找
    -group 按所属组查找
    -o OR 表示多个选项的或
    -a AND表示多个选项的与
    [root@foundation4 Desktop]# find /home/kiosk/Desktop/ -group kiosk -a -user kiosk
    /home/kiosk/Desktop/
    /home/kiosk/Desktop/rht-desktop.desktop
    /home/kiosk/Desktop/rht-server.desktop
    /home/kiosk/Desktop/file1

*-size +20k 查找大小大于20k的文件 -20k 小于 20k 等于
-type f查找的是文件 d 要查找的是目录
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -size +20K
find: invalid -size type `K’
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -size +20k
/home/kiosk/Desktop/file3
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -size 20k
/home/kiosk/Desktop/file2
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -size -20k
/home/kiosk/Desktop/
/home/kiosk/Desktop/rht-desktop.desktop
/home/kiosk/Desktop/rht-server.desktop
/home/kiosk/Desktop/file1
[root@foundation4 Desktop]# mkdir files
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -type d -a -size -20k
/home/kiosk/Desktop/
/home/kiosk/Desktop/files

  • -m
    [root@foundation4 Desktop]# find /home/kiosk/Desktop/ -mmin +5
    《5分钟以前创立的文件》
    /home/kiosk/Desktop/
    /home/kiosk/Desktop/rht-desktop.desktop
    /home/kiosk/Desktop/rht-server.desktop
    /home/kiosk/Desktop/file1
    /home/kiosk/Desktop/file2
    /home/kiosk/Desktop/file3
    /home/kiosk/Desktop/files
    /home/kiosk/Desktop/jjjjjj
    [root@foundation4 Desktop]# find /home/kiosk/Desktop/ -mmin -5
    《刚才的5分钟之内创建的文件》
    [root@foundation4 Desktop]# touch cccccccccc
    [root@foundation4 Desktop]# find /home/kiosk/Desktop/ -mmin -5
    /home/kiosk/Desktop/ 《因为在这个目录里创建文件,所以这个目录也被修改了》
    /home/kiosk/Desktop/cccccccccc
    [root@foundation4 Desktop]#

[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -mtime -5
《5小时内创建的文件,因为我开过机,所以会有虚拟机也被查找出来》
/home/kiosk/Desktop/
/home/kiosk/Desktop/rht-desktop.desktop
/home/kiosk/Desktop/rht-server.desktop
/home/kiosk/Desktop/file1
/home/kiosk/Desktop/file2
/home/kiosk/Desktop/file3
/home/kiosk/Desktop/files
/home/kiosk/Desktop/jjjjjj
/home/kiosk/Desktop/cccccccccc
[root@foundation4 Desktop]# find /home/kiosk/Desktop/ -mtime -1
《1小时内创建的文件》
/home/kiosk/Desktop/
/home/kiosk/Desktop/file1
/home/kiosk/Desktop/file2
/home/kiosk/Desktop/file3
/home/kiosk/Desktop/files
/home/kiosk/Desktop/jjjjjj
/home/kiosk/Desktop/cccccccccc

  • -perm
    [root@foundation4 files]# ll -r /home/kiosk/Desktop/files/
    total 64
    -rw-r–r–. 1 root root 30720 Oct 26 11:03 file3
    -rw-r–r–. 1 root root 20480 Oct 26 11:03 file2
    -rw-r–r–. 1 root root 10240 Oct 26 11:02 file1
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm /110
    /home/kiosk/Desktop/files/
    [root@foundation4 files]# ll /home/kiosk/Desktop/files/
    total 64
    -rw-r–r–. 1 root root 10240 Oct 26 11:02 file1
    -rw-r–r–. 1 root root 20480 Oct 26 11:03 file2
    -rw-r–r–. 1 root root 30720 Oct 26 11:03 file3
    [root@foundation4 files]# ll -d /home/kiosk/Desktop/files/
    drwxr-xr-x. 2 root root 42 Oct 26 11:03 /home/kiosk/Desktop/files/
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm /140
    /home/kiosk/Desktop/files/
    /home/kiosk/Desktop/files/file1
    /home/kiosk/Desktop/files/file2
    /home/kiosk/Desktop/files/file3
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm /740
    /home/kiosk/Desktop/files/
    /home/kiosk/Desktop/files/file1
    /home/kiosk/Desktop/files/file2
    /home/kiosk/Desktop/files/file3
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm -740
    /home/kiosk/Desktop/files/
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm -640
    /home/kiosk/Desktop/files/
    /home/kiosk/Desktop/files/file1
    /home/kiosk/Desktop/files/file2
    /home/kiosk/Desktop/files/file3
    [root@foundation4 files]# find /home/kiosk/Desktop/files/ -perm -642
    [root@foundation4 files]#
    文件权限: t u1 u2 u3 g1 g2 g3 o1 o2 o3
    制定的权限: t u1 u2 u3 g1 g2 g3 o1 o2 o3
    两行相与 T U1 U2 U3 G1 G2 G3 O1 O2 O3
    如果 是 /400 代表忽略g HE
    / 代表粗匹配 U1 U2 U3 G1 G2 G3 O1 O2 O3 只要有1位是1就是了。
  • 代表准确匹配U1 U2 U3 G1 G2 G3 O1 O2 O3必须都是1才行
    /444 ugo 任意一位有4就可以被找出来,或的关系
    -444 ugo 每一位上都必须有4。这几个数字是与的关系,这几个数字可以是不同的

  • -exec
    执行后面的命令
    [root@foundation4 Desktop]# find /etc/ -name *.conf -exec cp -r {} /mnt \;
    {} 指的是找到的所有内容
    命令完后要输入 空格 和 \;
    [root@foundation4 Desktop]# find /home/ -perm /022 -exec rm -rf {} \;
    找到home下对组和其他人可以写的文件,然后删除。

原创粉丝点击