day10:Linux文件类型及查找命令实践

主要内容:

  • 文件类型

  • 文件及目录查找命令

一、文件类型:

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 (创建压缩包是使用绝对路径)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容