主要内容:
-
文件类型
-
文件及目录查找命令
一、文件类型:
1.预备知识:
(1)扩展名:
.avi .txt .log .png .bash 等
windows:
系统根据不同的扩展名,区分不同类型的文件
Linux:
扩展名是给我们看的,方便人类区分不同类型的文件
(2)常见扩展名:(Linux下的)
.txt 文本文件
.log 日志文件
.conf .cfg 配置文件
.sh .bash 脚本文件
(3)常见的文件类型:
-即file 普通文件
d diectory 目录
l softlink 软连接(相当于windows下的快捷方式)
b 设备(块)文件 光盘 硬盘
c character 字符设备(不断向外发出或接受字符)
- -即file 普通文件
1.二进制文件
2.文本文件(text)
3.数据文件(data) 压缩包
[root@oldedu59 ~]# ls -l /tmp/etc.tar.gz /oldboy/oldboy.txt /bin/ls
-rwxr-xr-x. 1 root root 117680 Oct 31 03:16 /bin/ls #二进制文件
-rw-r--r-- 1 root root 75 Apr 9 15:46 /oldboy/oldboy.txt#文本文件
-rw-r--r-- 1 root root 10208732 Apr 9 20:12 /tmp/etc.tar.gz#数据文件
- d diectory 目录(相当于windows下的文件夹)
- l soft 软连接/符号链接 (相当于windows下的快捷方式) 存放源文件地址
创建软连接
[root@oldedu59 oldboy]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 9 15:11 alex
-rw-r--r-- 1 root root 0 Apr 9 15:11 oldboy.txt
[root@oldedu59 oldboy]# ln -s /oldboy/oldboy.txt /oldboy/oldboy.txt.soft
[root@oldedu59 oldboy]# ls -l /oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 9 15:11 alex
-rw-r--r-- 1 root root 0 Apr 9 15:11 oldboy.txt
lrwxrwxrwx 1 root root 18 Apr 9 15:20 oldboy.txt.soft -> /oldboy/oldboy.txt
[root@oldedu59 oldboy]# file /oldboy/oldboy.txt.soft
/oldboy/oldboy.txt.soft: symbolic link to `/oldboy/oldboy.txt'
- b 设备(块)文件 光盘 硬盘
[root@oldedu59 oldboy]# ls -l /dev/cdrom /dev/sr0 /dev/sda
lrwxrwxrwx 1 root root 3 Apr 9 08:28 /dev/cdrom -> sr0
brw-rw---- 1 root disk 8, 0 Apr 9 08:28 /dev/sda
brw-rw---- 1 root cdrom 11, 0 Apr 9 08:28 /dev/sr0
- c character 字符设备(不断向外发出或接受字符)
[root@oldedu59 oldboy]# ls -l /dev/urandom /dev/null /dev/zero
crw-rw-rw- 1 root root 1, 3 Apr 9 08:28 /dev/null 黑洞(不断接受信息)
crw-rw-rw- 1 root root 1, 9 Apr 9 08:28 /dev/urandom 随机字符生成器(生成随机密码)
crw-rw-rw- 1 root root 1, 5 Apr 9 08:28 /dev/zero 白洞(不断发出信息 无法查看)
[root@oldedu59 oldboy]# echo {a..z} {0..10} > /oldboy/oldboy.txt
[root@oldedu59 oldboy]# cat /oldboy/oldboy.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 10
[root@oldedu59 oldboy]# tr 'a-z' 'A-Z' </oldboy/oldboy.txt
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10
[root@oldedu59 oldboy]# #删除
[root@oldedu59 oldboy]# #tr -d '要删除的内容' </oldboy/oldboy.txt
[root@oldedu59 oldboy]# tr -d 'a-z' </oldboy/oldboy.txt
0 1 2 3 4 5 6 7 8 9 10
[root@oldedu59 oldboy]# #tr -cd -d删除 -c 取反
[root@oldedu59 oldboy]# tr -cd 'a-z' </oldboy/oldboy.txt
abcdefghijklmnopqrstuvwxyz[root@oldedu59 oldboy]#
二、文件及目录查找命令
1.file:显示文件的类型
[root@oldedu59 ~]# file /tmp/etc.tar.gz /oldboy/oldboy.txt /bin/ls
/tmp/etc.tar.gz: gzip compressed data, from Unix, last modified: Tue Apr 9 20:12:01 2019
/oldboy/oldboy.txt: ASCII text
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped
2.which:显示命令的全路径
[root@oldedu59 oldboy]# which rm cp mv grep
alias cp='cp -i'
/usr/bin/cp
alias grep='grep --color=auto'
/usr/bin/grep
alias mv='mv -i'
/usr/bin/mv
alias rm='rm -i'
/usr/bin/rm
[root@oldedu59 oldboy]# \which rm cp mv grep
/usr/bin/rm
/usr/bin/cp
/usr/bin/mv
/usr/bin/grep
3.whereis:显示命令及相关文件的全路径
[root@oldedu59 oldboy]# whereis rm cp
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
4.locate :快速定位文件路径
安装命令:yum install -y mlocate
yum 故障:
No package locate available.
Error: Nothing to do
没有叫做locate的软件包
注意:yum 安装的时候是安装软件包
- 如何查询命令属于哪个软件包(yum provides [要查找的命令])
一个软件包-多个命令
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
#软件包叫mlocate
Repo : base
Matched from:
Filename : /usr/bin/locate
5.find :查找目录下的文件
[root@oldedu59 oldboy]# find /oldboy -type f -name "oldboy.txt"
/oldboy/oldboy.txt
-maxdepth 这个参数必须放在其他参数之前
不在前面会警告:
[root@oldedu59 ~]# find / -type d -maxdepth
find: warning: you have specified the -maxdepth option after a non-option argument -type,
but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).
Please specify options before other arguments.
在前面的话:
[root@oldedu59 ~]# find / -maxdepth 1 -type d
/
/boot
/dev
/proc
/run
/sys
-name和-iname的区别
[root@oldedu59 oldboy]# find /oldboy/alex -type f -name 'oldboy*.txt'
/oldboy/alex/oldboy01.txt
[root@oldedu59 oldboy]# find /oldboy/alex -type f -iname 'oldboy*.txt'
/oldboy/alex/oldboy01.txt
/oldboy/alex/OLDboy01.txt
find命令的参数及其作用:
-maxdepth
最大查找多少层,一等要放在最前面,1是该目录下一层
-type 查找什么类型(f 文件 ; d 目录)
-name 名字
-iname 名字(不区分大小写)
-size 大小{+ 大于;- 小于;G(大写) M(大写) k(小写)}
6.xargs 分组
[root@oldedu59 oldboy]# echo {1..10} >/oldboy/sf.txt
[root@oldedu59 oldboy]# cat /oldboy/sf.txt
1 2 3 4 5 6 7 8 9 10
[root@oldedu59 oldboy]# xargs -n2 </oldboy/sf.txt
1 2
3 4
5 6
7 8
9 10
7.tar:打包压缩命令
- z 通过gizp工具进行压缩
- c create 创建包
- v verbose 显示过程
- f 指定压缩包(放在最后)
- t list 查看压缩包内容
- 具体用法:
windows:各种压缩软件,如好压 360压缩等
Linux: 分成两个步骤:打包和压缩
(1)创建压缩包:tar zcvf 压缩包的文件名 要压缩的文件名
例:/etc 目录 压缩完成放在/tmp/etc.tar.gz (通过tar打包 通过gizp进行压缩)
tar zcvf /tmp/etc.tar.gz /etc/
(2)查看压缩包的内容:tar ztf 压缩包的文件名
例:查看/tmp/etc.tar.gz
[root@oldedu59 ~]# tar ztf /tmp/etc.tar.gz
(3)解压: tar zxf 默认解压到当前文件
例:解压/tmp/etc.tar.gz
[root@oldedu59 tmp]# tar zxf etc.tar.gz
[root@oldedu59 tmp]# ls
etc vmware-root_6443-1949573918
etc.tar.gz vmware-root_6497-1723274482
oldboy.txt vmware-root_6541-1681789921
vim.log vmware-root_6737-3853947227
vmware-root_6367-1983325459 vmware-root_6764-2864712486
vmware-root_6392-969588466 vmware-root_6861-4114587648
vmware-root_6409-1958552228 ylz.txt
(4)解压到指定位置:-C(大写c)
例:解压/tmp/etc.tar.gz 到 /root/
[root@oldedu59 tmp]# tar xf /tmp/etc.tar.gz -C /root/
[root@oldedu59 tmp]# cd
[root@oldedu59 ~]# ll
total 24
-rw-r--r-- 1 root root 43 Apr 8 15:18 1.txt
-rw-------. 1 root root 1502 Mar 26 11:47 anaconda-ks.cfg
drwxr-xr-x 79 root root 8192 Apr 9 16:36 etc
-rw-r--r-- 1 root root 0 Apr 1 09:42 file2.txt
-rw-r--r-- 1 root root 8 Apr 4 16:14 lod.txt
-rw-r--r-- 1 root root 0 Apr 1 20:18 meinv.txt
-rw-r--r-- 1 root root 0 Apr 1 10:27 old
压缩时用zcf的提示含义:
[root@oldedu59 tmp]# tar zcf /tmp/etc.tar.gz /etc/
tar: Removing leading `/' from member names
从压缩包中删除每个文件最开头的/
意思是把压缩包中的绝对路径------>相对路径
解压的时候会默认解压到当前路径
为何这样?
假设压缩包中存放的是绝对路径
解压的时候也会按照绝对路径解压---> 会把源文件覆盖
系统替我们预防故障,通过把绝对路径--->相对路径
温馨提示:不要加上 -P (创建压缩包是使用绝对路径)