第二章 文件、目录管理
2.23-2.25 find 命令
find命令
语法: find [路径] [参数] ;find [选项] [路径] [filename]
- find [路径] [参数]
- 参数:
-atime +n/-n:访问或执行时间大于/小于n天的文件
-ctime +n/-n:写入、更改inode属性(eg:更改所有者、权限或者链接)时间大于/小于n天的文件
-mtime +n/-n:写入时间大于/小于n天的文件
eg:
[root@adai002 ~]# find /tmp/ -mtime -1 查找/tmp/目录下mtime小于一天的文件
/tmp/
/tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv
/tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv/tmp
/tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv/tmp/vmware-root
- find [选项] [路径] [filename]
- 选项:
-name filename:直接查找该文件名的文件
eg:
[root@adai002 ~]# find . -name test2.txt
在该目录精确查找test2.txt
./test/test2.txt
[root@adai002 ~]# find . -name "test*"
在该目录下查找含有test的文件(模糊搜索)
./test
./test/test2.txt
-type filename:通过文件类型查找(文件类型:f,b,c,d,l,s等)
eg:
[root@adai002 ~]# find . -type d 在该目录下搜索目录文件
.
./.ssh
./test
locate命令
通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里,属于模糊搜索。
语法: locate [filename]
如果locate命令不存在,需要执行如下操作:
[root@adai002 ~]# locate ls
locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
[root@adai002 ~]# updatedb 生成列表库
注: 安装好mlocate包后,运行locate命令会报错,这是因为系统还没有生成那个文件列表库。使用updatedb命令立即生成(更新)这个列表库。[因为该命令运行需要较大运行内存,所以服务器在跑着重要业务时尽量不要运行此命令]。该数据库每周更新一次,如果某文件是在两次跟更新时间段内常见的,是搜不到的,需要到/etc/updated.conf去配置该数据库生成(更新)的规则。
which命令
查找可执行文件的绝对路径及别名设置。
[root@adai002 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
注: 该命令只能用来查找PATH环境变量中出现的路径下的可执行文件。
whereis命令
它类似于locate命令,在一个预先生成的文件列表库查找跟给出的文件名相关的文件(模糊查找)。
语法: whereis [选项] [filename]
选项:
-b 只找binary文件
-m 只找说明文件manual路径下的文件
-s 只找source来源文件
-u 没有说明档的文件
eg:
[root@adai002 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
扩展:
1) find -perm里的+/-的含义:
比如当前目录下有四个文件a、b、c、d
a文件的权限为6000,即a文件仅有suid、sgid特殊权限
b文件的权限为2000,即b文件仅有sgid特殊权限
c文件的权限为4000,即c文件仅有suid特殊权限
d文件的权限为6600,即d文件在拥有suid、sgid特殊权限的同时还有rw权限
那么现在find . -type f -perm 6000 可以找到a文件,如果现在查找find . -type f -perm -6000可以找到a、d两个文件,原因是:
我们先将abcd四个文件的权限转化为二进制那么,
a权限转为2进制后为 110 000 000 000
b权限转为2进制后为 010 000 000 000
c权限转为2进制后为 100 000 000 000
d权限转为2进制后为 110 110 000 000
在find . -type f -perm -6000 中的6000权限转为2进制为110 000 000 000,那么6000前的-号代表缺一不可,也就是如果有1的地方必须有1,那么这里找-6000权限的文件,这6000权限里前面有2个位置都是1,所以这里find找-6000权限的文件就是找前面2个位置都是1的文件.而只有a、d这两个文件前2个位置都是1,所以find . -type f -perm -6000 只会找到a d两个文件。
如果用find . -type f -perm +6000会找到abcd这4个文件,这是因为: +6000里的这个+号代表有1即可,也就是有1的位置只要有1就可以.那么这里找+6000权限的文件,这6000权限前面2个位置都有1,所以这里find找+6000权限的文件就是找前面2个位置只要有一个位置有1的文件就可以了。
2) 三个时间属性
atime(=access time),即在读取文件或者执行文件时更改。
ctime(=change time),即在写入文件、更改所有者、权限或链接设置时随inode的内容更改而更改。
mtime(=modified time),即写入文件时随文件内容的更改而更改。
在Linux下,可以通过‘df -i’查看各个分区的inode数量。
stat命令: 用来列出文件的atime、ctime、mtime
[root@adai002 ~]# stat ./test/test2.txt
文件:"./test/test2.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:50757613 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2017-06-09 18:00:14.896259676 +0800
最近更改:2017-06-09 18:00:14.896259676 +0800
最近改动:2017-06-09 18:00:14.896259676 +0800
创建时间:-
注: atime不一定在文件被访问之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数,那么就不会更新atime的信息。总之,这个三个time属性都放在inode中。若mtime修改inode就一定会改,既然inode改了,那ctime也就跟着改了(atime比较特殊,atime改变ctime不一定改变)。
3) 快捷键的使用
常用快捷键:
Ctrl+c:终止当前命令
tab:补全命令或目录
Ctrl+d: 退出当前终端,同exit
Ctrl+z: 暂停当前进程,暂停后可以用fg恢复它。
Ctrl+l: 清屏
Ctrl+u: 删除光标前面的所有字符
Ctrl+k: 删除光标后面的所有字符
Ctrl+a: 快速把光标定位到行首
Ctrl+e: 快速把光标定位到行尾
Ctrl+s: 锁屏
Ctrl+q: 开屏
2.26 文件名后缀
>一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。
Linux下常见的文件扩展名:
.php ------这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件;
.so -------这类是库文件;
.doc *.obt --------这是OpenOffice 能打开的文件;
.bz2 ------bzip2的压缩文件
.gz ------gzip的压缩文件
.tar ------tar打包文件(是包文件不是压缩文件)
.tbz------tar打包并用bzip压缩文件
.tgz-----tar打包并用gzip压缩的文件
.au -----audio文件
.gif -----gif图象文件
.html/.htm-----HTML文件
.jpg-----JPEG图象文件
.pdf------电子文档(PDF格式的)
.png-----PNG图象文件
.ps------postscinpt文件(打印格式文件)
.txt------纯文本文件
.wav-----audio文件
.xpm-----图象文件
.conf-------配置文件
.lock-------LOCK文件(用来判断一个文件或设备是否被使用)
.rpm------REDHATPackage.Manager文件(套件包或软件包)
.c -------C源程序代码文件
.cpp------C++源程序代码文件
.h -------C或C++程序的头文件
.o------程序目标文件
.pl------perl脚本文件
.so-----类库文件
相关推荐
Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...
"linux下find命令的用法" Linux 操作系统下的文件查找命令是 find 命令,这个命令可以帮助用户在 Linux 系统中快速查找需要的文件。find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间...
使用find命令查找Linux中的隐藏文件的方法 find命令是Linux和Unix系统中最强大和灵活的命令之一,能够根据不同的选项和参数来实现各种文件搜索和管理任务。下面将详细介绍如何使用find命令查找Linux中的隐藏文件。 ...
### Linux下的find命令查找与排除命令详解 在Linux系统中,`find`命令是一个非常强大的工具,用于在文件系统中搜索文件。通过结合不同的选项和参数,用户可以精确地定位到所需的文件或目录。本文将重点介绍如何使用...
仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件
find命令和xargs命令配合使用,自己总结的,觉得还好
运用tasklist和find命令来检测进程是否存在
find 命令参数详解 find 命令是 Unix/Linux 系统中一个功能强大且灵活的命令,用于在文件系统中搜索和查找文件。该命令具有强大的功能,因此它的选项也很多,详细了解每个参数可以帮助我们更好地使用 find 命令。 ...
Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find 命令以及它所提供的选项来查找...
### Linux常用的find命令详解 #### 一、引言 在Linux系统中,`find`命令是一种非常强大且灵活的工具,用于在文件系统中搜索文件。对于初学者来说,掌握`find`的基本用法和一些高级特性是非常重要的,它可以帮助...
### Linux中的Find命令详解 在Linux系统中,`find`命令是极其强大的工具之一,用于在文件系统中搜索文件。其功能强大且灵活,能够基于多种条件进行查找,包括文件名、类型、权限、大小、拥有者等。下面将详细介绍`...
find 命令的 7 种用法.doc
find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。 find如不加任何参数,表示查找当前...
### Linux Find 命令使用手册详解 #### 概述 `find` 是一个功能强大的命令行工具,用于在Linux系统中的目录树中查找文件。它支持多种选项和表达式来帮助用户根据特定条件筛选出目标文件。此文档将详细介绍`find`...
Linux find 命令说明 Linux find 命令是 Linux 系统中一个功能强大且灵活的命令,它可以根据各种条件来查找文件和目录。Find 命令的基本语法是 `find [pathname] [expression]`,其中 `pathname` 是要搜索的目录或...
Linux 命令 find 的高级查找技巧 find 命令是 Linux 中最常用的命令之一,掌握了 find 命令的高级查找技巧可以使很多操作达到事半功倍的效果。本文将详细介绍 find 命令的格式、参数、表达式、tests、actions、...
Linux下的find命令在目录结构中搜索文件,并执行指定的操作。linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下find命令下的三个时间参数atime,...
Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...
### Linux Find 命令详解 #### 概述 `find` 命令是 Linux 系统中一个非常强大的工具,用于在指定路径下查找文件。它支持多种选项来帮助用户精确地定位到需要的文件。通过 `find` 命令,用户可以基于文件名、文件...
### Linux Find 命令精通指南 #### 一、引言 `find` 命令作为 Linux 下极为常用且功能强大的工具之一,在文件管理和系统维护方面扮演着至关重要的角色。掌握 `find` 的使用方法不仅可以提高工作效率,还能在处理...