[Linux文件管理之(高级)、?件查找]

[Linux文件管理之(高级)、?件查找]

?件管理之:?件查找

?、查看命令所属?件(which命令

which命令  后面跟命令名即可查看命令所属位置

[root@localhost ~]# which ip         
/usr/sbin/ip
# ps: ?些命令的路径都被配置到了环境变量PATH?
 echo $PATH

二、根据文件属性查找文件(find命令)

	共用参数:
		-a : 并且    			# 必须满足两个的文件
		-o : 或者                          #   ↓  就是或者的意思 满足任意一个即可查到
		[root@python test]# find ./ -size -30M -o -size +50M
        ./
        ./txt
        ./txt2
   ------------------------------------------------------
   总用量 122880
-r--r-----. 1 user1 user1 20971520 6月  17 06:32 txt     # 用户属主为user1 属组为user1
-rw-r--r--. 1 root  root  41943040 6月  17 06:32 txt2
-rw-r--r--. 1 root  root  62914560 6月  17 06:32 txt3
[root@afei test]# find /root/ -size +10M     # 正常查询文件大小超过10M的有以下6个
/root/test/txt
/root/test/txt2
/root/test/txt3
/root/a/b/c/txt
/root/a/b/c/txt2
/root/a/b/c/txt3
# 按照文件大小以及属主来查询
[root@afei test]# find /root/ -size +10M -user user1    # 按照属主来查询就一个(见上面)
/root/test/txt  (结果有1个)

# 按照文件大小以及属组来查询
[root@afei test]# find /root/ -size +10M -group user1   # 按照属组来查询也就一个(见上面)
/root/test/txt  (结果有1个)

# 按照文件大小以及所属类型查找
[root@afei test]# find /root/ -size +10M -type f
/root/test/txt
/root/test/txt2
/root/test/txt3
/root/a/b/c/txt
/root/a/b/c/txt2
/root/a/b/c/txt3  (结果有6个)

# 也可以一起使用 文件大小 所属类型 以及所属用户 以及属组....
[root@afei test]# find /root/ -size +10M -type f -user user1
/root/test/txt                文件大小     文件类型  文件所属用户

[Linux文件管理之(高级)、?件查找]

1、按文件名查找

[root@localhost ~]# find /etc -name "ifcfg-eth0"
[root@localhost ~]# find /etc -iname "ifcfg-eth0" # -i忽略??写
[root@localhost ~]# find /etc -iname "ifcfg-eth*"

2、按?件??

find [查询的路径] -size [大小]

[root@localhost ~]# find /etc -size +3M # ?于3M
[root@localhost ~]# find /etc -size 3M
[root@localhost ~]# find /etc -size -3M
[root@localhost ~]# find /etc -size +3M -ls # -ls找到的处理动作

3、指定查找的?录深度:

-maxdepth levels		 #  ↓文件层级 5 
[root@localhost ~]# find / -maxdepth 5 -a -name "ifcfg-eth0" 

# -a并且,-o或者,不加- a,默认就是-a

4、按时间找(atime,mtime,ctime):

[root@localhost ~]# find /etc -mtime +3 # 修改时间超过3天 
[root@localhost ~]# find /etc -mtime 3 # 修改时间等于3天 
[root@localhost ~]# find /etc -mtime -3 # 修改时间3天以内
	-ctime : 按照创建时间查询
	-mtime : 按照修改时间查询
	-atime : 按照访问的时间查询

5、设置查询最高的目录层级(目录层级参数必须放在第一位  -maxdepth

	# find [文件路径]  -maxdepth 指定层级 -a -size 文件大小
	查找从指定文件路径开始计算层级  -a是并且   -size文件大小 后面跟指定文件大小
	不写默认就是-a 并且的意思
	还有-o 是或者的意思 用得话	得指定
	
	[root@python ~]# find /root/  -maxdepth 3 -a  -size +40M
        /root/txt2
        [root@python ~]# find /root/  -maxdepth 6 -a  -size +40M
        /root/txt2
        /root/a/b/c/txt2

6、按照文件类型来查询

# 按照目录查询
		[root@python ~]# find /root/ -type d
		# 按照普通文件来查询
		[root@python ~]# find /root/ -type f
		# 查看设备文件
		[root@python dev]# find /dev/ -type c
        
-----------------------------------------------------------------------------
[root@localhost ~]# find /dev -type f     # f普通
[root@localhost ~]# find /dev -type d     # d?录
[root@localhost ~]# find /dev -type l     # l链接
[root@localhost ~]# find /dev -type b     # b块设备
[root@localhost ~]# find /dev -type c     # c字符设备
[root@localhost ~]# find /dev -type s     # s套接字
[root@localhost ~]# find /dev -type p     # p管道?件

7、按照权限来查询

# 解释一波: 

# 	    rw-r--r--
#        6  4  4
#        
#        6 所属用户  
#        4 所属用户组  
#        4 其他用户
#        
#        r(4)	: 只读
#        w(2)	:只写
#        x(1)	:执行
#  
#  我们可以指定给用户组里的一个用户给他设置权限  比如只给他读权限 例如 6 4 0
# 	-rw--r-----. 1 root user1 20971520 6月  16 17:33 txt
# 	 6   4  0     给user1这个用户组 设置txt文件为只读权限   
#  而其他用户没有任何权限、那么他就可以读取这个文件  但不能进行其他操作
# 
#  亦或者 不给某个用户任何权限 其他用户权限正常  例如 6 0 4 
# 	-rw-----r--. 1 root user1 20971520 6月  16 17:33 txt
# 	 6   0  4     不给user1这个用户组任何权限 其他用户设置txt文件为只读权限
#  这个用户没有任何权限  而其他用户是可读权限
#
#
#        [root@python ~]# useradd user1
#        [root@python ~]# useradd user2
#        [root@python ~]# useradd user3
#
#       
#
#        chmod : 修改文件权限
#            chmod 755 [文件路径]
#        chown : 修改所属用户及用户组
#            chown 用户.用户组 [文件路径]
#	
#	
#     4  4   0
#    -r--r-----. 1 test user1 20971520 6月  16 17:33 txt
#    -rw-r--r--. 1 root root  41943040 6月  16 17:33 txt1
#    -rwxr-xr-x. 1 root root  62914560 6月  16 17:33 txt2
#    [root@python test]# find ./  -perm 440     # 权限为440  
#    ./txt
#    [root@python test]# find ./  -perm 644
#    ./txt1
#    ./txt2
#    
#    

chmod : 修改文件权限

chmod 755 [文件路径]

chown : 修改所属用户及用户组

chown 用户.用户组 [文件路径]

8、处理查询结果

#		# 直接跟命令  -跟ls是查看文件详情 
#		[root@python test]# find ./  -perm 755 -ls
#        202362858    0 drwxr-xr-x   2 root     root           41 6月 16 17:59 ./
#        134514204 61440 -rwxr-xr-x   1 root     root     62914560 6月 16 17:33 ./txt2
#		
#		
#		# exec(推荐)
#		# {}:代表前面查询出来的内容  /opt/ 路径   \ 为固定搭配
#		find ./ -size +50M -exec cp {} /opt/ \;
#		
#		
#		# 使用管道
#		# xargs是将前面命令执行的结果先用一个{}来保存,然后用{}取出来处理
#		find ./ -size +50M | xargs -I {} cp {} /mnt/  # cp 复制到/mnt/路径下

[Linux文件管理之(高级)、?件查找]

上一篇:将BSTR从C DLL函数传递到VB6应用程序


下一篇:Linux修改默认挂载NFS协议版本