详解Linux文件与目录管理命令

说明

鸟哥的Linux的私房菜基础学习篇(第三版)关于Linux文件与目录管理的阅读笔记

正文

目录的相关操作命令

特殊的目录:
   /  代表根目录
   .   代表此层目录
   ..  代表上一层目录
   -  代表前一个工作目录
   ~ 代表“目前用户身份”所在的主文件夹
   ~account 代表account这个用户的主文件夹(account是个账号名称)

常见的处理目录的命令

cd(切换目录 Change Directory)

cd [相对路径或绝对路径] 注意:目录名称与cd命令之间存在一个空格
cd ~ : 表示回到自己的主文件夹
cd : 仅输入cd时,代表的就是“cd ~”的意思
cd .. : 表示目前的上层目录
cd / :表示回到root目录

pwd(显示目前所在的目录 Print Working Directory)

pwd [-P]
参数-p,可以让我们取得正确的目录名称,而不是以连接文件的路径来显示的

mkdir(新建新目录 make directory)

mkdir [-mp] 目录名称
参数:
-m :配置文件案的权限,直接设置,不需要看默认权限(umask)
-p :递归创建所需目录<./font>

rmdir(删除“空”的目录 remove directory)

rmdir [-p] 目录名称
参数 -p : 连同上层“空的”目录也一起删除
注意:目录需要一层一层地删除,且被删除的目录中必定不能存在其他的目录或文件

文件与目录的管理

查看文件与目录:ls

参数:
-a : 全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来
-A:列出全部文件(连同隐藏文件,但不包括...这两个目录)
-d : 仅列出目录本身,而不是列出目录内的文件数据
-h:将文件容量以人类较易读的方式(GB,KB等)列出来
-l : 列出长数据串,包含文件的属性与权限等数据 命令 ll 为 ls -l

-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S:以文件容量大小排序,而不是用文件名排序

复制cp(copy)

该命令除了单纯的复制文件外,还可以创建连接文件(即快捷方式),对比两文件的新旧而予以更新,以及复制整个目录等功能
cp [参数] 源文件(source)目标文件(destination)
参数:
-a:相当于-pdr的意思
-f :为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件已经存在时,在覆盖时会先询问操作的进行
-r:递归持续复制,用于目录的复制行为
-p:连同文件的属性一起复制,而非使用默认属性(备份常用)

注意:在默认条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。在备份的操作时,要注意特殊权限的文件,不能直接以cp来复制,必须要加上-a或-p等可以完整复制文件权限的参数

删除rm(remove)

rm [-fir] 文件或目录
参数:
-f:force强制的意思,忽略不存在的文件,不会出现警告信息
-i : 在删除前会询问用户是否操作
-r:递归删除,最重用在目录的删除 注意:非常危险的参数

移动或更名mv(move)

mv [-fiu] source destination
mv [opitons] source1 source2 ….. directory
参数:
-f : force强制,如果目标文件已存在,不会询问而直接覆盖
-i : 若目标文件存在,会询问是否覆盖
-u : 若目标文件已经存在,且source比较新,才会更新(update)

注意:如果有多个源文件或目录,则最后一个目标文件一定是“目录”,意思为将所有的数据移动到该目录中

另一个用途是:更该文件名,在Linux中有个rename可以用来更改大量的文件名

文件内容查阅

直接产看文件内容

cat (concatenate)

由第一行开始显示文件内容
cat [-参数]
参数:
-b:列出行号,仅针对非空白行做行号显示,空白行不标行号
-E:将结尾的断行字符$显示出来
-n:打印出行号,连同空白行也会有行号

tac(方向列示)

从最后一行开始显示,可以看出tac是cat的倒写形式

nl(添加行号打印)

nl [-bnw]
参数:
-b : 指定行号指定的方式 -b a : 空行显示行号 -b t : 空行不显示行号
-n:行号的表示方法 -n ln:行号在屏幕的最左方显示 -n rn:行号在自己字段的最右方显示,且不加0 -n rz:最右方显示且加0
-w:行号字段占用的位数

可翻页查看

more(一页一页翻动)

在最后一行会显示出目前显示的百分比

按键命令:
空格键(Space):代表向下翻一页
Enter(回车键):代表向下滚动一行
/字符串:代表在这个显示的内容中,向下查询“字符串”这个关键字

:f :立刻显示出文件名以及目前显示的行数
q:代表立刻 离开more,不再显示该文件的内容
b 或 [ctrl]-b : 代表往回翻页,这个操作只对文件有用,对管道无用

less(一页一页翻动)

在使用more的时,不能向前翻,只能向后翻,使用less时,可以使用上、下按键进行前后翻页

按键命令:
空格键:向下翻动一页
[PageDown]:向下翻动一页
[PageUp]:向上翻动一页
/字符串:向下查询“字符串”
?字符串:向上查询“字符串”

n:重复前一个查询(与/ 或?有关)
q:离开less

数据选取

head(取出前面几行)

head [-n number] 文件
head -n 20 文件 —–显示文件的前20行
head -n -100 文件 —–列出前面的所有行数,但不包括后面的100行

tail(取出后面几行)

tail [-n number] 文件
参数:
-n:后面接数字,代表显示几行的意思
-f:表示持续监测后面所接的文件名,ctrl+c结束

tail -n +100 文件名 —– 代表该文件从100行以后都会被列出来
若想让文件有数据写入时就立刻显示到屏幕上,使用-f参数

非纯文本文件:od

od [-t TYPE] 文件
参数:
-t :后面可以接各种“类型(TYPE)”的输出 如:
       a : 利用默认的字符来输出
       c:使用ASCII字符来输出
       d:十进制 f:浮点数 o:八进制 x:十六进制

修改文件时间或创建新文件:touch

文件的时间参数:
modification time(mtime): 当该文件“内容数据”更改时,就会更新这个时间
status time(ctime):当该文件“状态(status)”改变时,就会更新这个时间,如权限与属性发生改变
access time(atime):当“该文件的内容被取用”时,就会更新这个读取时间(access)如cat命令读取文件时

touch [-acdmt] 文件
参数:
-a:修改访问时间
-c:仅修改文件的时间,若该文件不存在则不创建新文件
-d:后面可以接欲修改日期而不用当前日期
-m:仅修改mtime
-t : 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]

面试经常问到touch命令的功能:
创建一个空的文件
将某个文件日期改为目前日期(mtime与atime)

查看文件类型 file

文件的查询

脚本文件名的查询

which(寻找“执行文件”)

which [-a] command
参数:
-a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的命令的名称

文件名的查找

find命令不常用,速度慢。常用whereis和locate来查找,如果找不到采用find命令。
whereis和locate是利用数据库来查找数据,所以快速,find命令直接查找硬盘。但是使用时会发现whereis和locate这个命令有时会找到已经删除的文件或找不到新创建的文件

whereis(寻找特定的文件)

whereis [-bmsu] 文件或目录名
参数:
-b:只找二进制格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项中的其他特殊文件

locate

locate [-ir] keyword
参数:
-i:忽略大小写的差异
-r:后面可接正则表达式的显示方式

locate寻找的数据是由已创建数据库/var/lib/mlocate/里面的数据所查找到的

find

find [PATH] [option] [action]
参数:
1.与时间有关的参数 共有:-atime -ctime -mtime
-mtime n :n为数字,意义为在n天之前的“一天之内”被更改过的文件
-mtime +n:列出在n天之前(不含n天本身)被更改过的文件
-mtime -n:列出在n天之内(含n天benshen)被更改过的文件
-newer file:file为一个存在的文件,列出比file还要新的文件名

ex:
find / -mtime 0 —— 将系统过去24小时内有改动(mtime)的文件列出

时间轴:
这里写图片描述

+4代表大于等于5天前的文件名
-4代表小于等于4天内的文件名
4则是代表4~5那一天的文件名

2.与用户或用户组名相关的参数
-uid n:用户id -gid n:用户组id
-user name:用户账号名称
-group name:用户组名
-nouser:寻找文件的所有者不存在/ect/passwd的人
-nogroup:寻找文件的所有用户组不存在与/etc/group中的文件

3.与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件
-type TYPE:查找文件类型为TYPE的,类型主要有:一般正规文件(f)设备文件(b,c)目录(d)连接文件(l)socket(s)及FIFO(p)

-perm mode:查找文件权限“刚好等于”mode的文件
-perm -mode:查找文件权限“必须要全部包括mode的权限”的文件
-perm +mode:查找文件权限“包含任一mode的权限”的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值