文件查找
文件查找有3种命令:
- which: 命令查找,查找我们在系统上使用的命令,如
which cat
- find:文件查找,针对文件名
- locate:文件查找,依赖数据库
which
which用于查找命令文件
。
- which命令的使用方法:
which 需要查找的命令
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]# which mkdir
/usr/bin/mkdir
[root@localhost ~]# which cd
/usr/bin/cd
alias ls='ls --color=auto'
表示的是将ls --color=auto
简写为ls
。
alias
命令就是给命令起个别名,方便后续使用。
- 也可以使用where命令进行查找:
whereis 需要查找的命令
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# whereis mkdir
mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz /usr/share/man/man1p/mkdir.1p.gz /usr/share/man/man2/mkdir.2.gz /usr/share/man/man3p/mkdir.3p.gz
[root@localhost ~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
locate
locate是用来查找所有文件的
查找命令:locate 文件名
对于新创建的文件locate是不能查找到的,只有当系统重启,重新加载所有文件时才可以适用locate
查找到。或者执行updatedb
命令,更新系统文件。
find命令
find命令的语法是:
find [path...] [options] [expression] [action]
- path: 要查找的路径
- options: 要查找的内容的选项,如-name表示查找文件名
- expression:表达式,查找参数
- action:行为,动作
按文件名查找文件
按文件名查找文件,options就是-name
find /etc -name '7755199.txt'
表示在etc
目录下查找文件名为755199.txt
的文件。
查找不区分大小写
默认的查找命令是区分大小写的
,如果不想区分大小写,可以使用添i
参数。
find /etc -iname “hosts”
就是不区分大小写在etc文件夹下查找hosts
文件
按文件大小查找文件
按文件大小查找文件,options就是-size
。
find /etc -size +5M
表示查找在etc
目录下大小大于5M的文件。
find /etc -size 5M
表示查找在etc
目录下大小等于5M的文件。
find /etc -size -5M
表示查找在etc
目录下小于5M的文件。
- ls -lh 文件: 表示查看文件的长
列表数据
和大小数据
按目录深度查找文件
按目录深度查找文件,options就是-maxdepth
。
使用:
find / -maxdepth 2 -a -name ifcfg*
就是在根目录下查找层级为2并且名字以ifcfg开头的文件。
按文件属主属组查找
按文件属主属组查找,options就是user
(属主),group
(属组)
find /home -user jack
在home文件夹下查找属主为jack的文件
find /home -group hr
在home文件夹下查找属组为hr的文件
按文件类型查找
按文件属主属组查找,options就是type
type的取值有:
- f:普通文件
- d: 文件夹
- l:链接文件
- b: 设备:光驱、硬盘、RAID等
在windows中意后缀作为文件区分,但是linux中不以后缀做区分,而是以文件类型作区分,ls -l
命令中的第个字母表示文件类型
按文件权限查找
按文件权限查找,options就是perm
find . -perm 644 -ls
就是在.目录下查找权限是644
的文件。
-ls
就是动作参数:这里表示查找到文件之后以ls
命令查看该文件。
[action]
find查看命令的最后一个参数是[action]
,表示查找到文件之后要进行的动作。
可选项:
- -print:默认值,就是输出的意思。
- -delete:表示找到文件后进行删除
-ok cp -rvf {} 目标文件夹 \;
:复制查找到的文件
ok
是连接符:用于连接拷贝动作
{}
:是引用符,引用符引用的是前面查找出来的文件,
\;
:是结束符- -ls: 以
ls
查看查找到的文件
文件打包和压缩
tar
命令是Unix/Linux系统
中备份文件
的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。建议针对目录。
打包
语法:tar 选项 压缩包名称 源文件
tar -f 1.tar /etc
注意:打包是打包,并不会进行压缩。
选项可选值:
-f:即filename,即文件
-cf:即createFile,即创造文件
-czf:即createZipFile,即创造文件并进行压缩
。
-cjf:创造文件并进行压缩
。
-cJf:创造文件并进行压缩
,相比于前两种压缩方法压缩后的体积最小,但是时间长。
压缩的原理:
就是找到文件中相同的信息用一个简介的变量名
替代,压缩就是去重法,优点是文件体积变小,缺点是无法直接读,所以需要解压。
解压文件
tar -xf 需要解压的文件
表示将目标文件解压到当前目录中
打包的文件也是需要解压的,只要文件打包要解析该文件就要进行解压。tar -xf 需要解压的文件 -C 目标目录
表示将文件解压到目标目录中。
eg:
tar -xf etc.tar -C /tmp
表示将etc.tar压缩包解压到tmp
目录。