Linux的文件操作
学习Linux的文件操作,一般需要知道一个文件如果你想要操作他,必须知道你对这个文件有什么操作的权限或者修改你自己对文件操作的权限。必须要知道文件有三种权限
r:可读
w:可写
x:可执行
在打开Linux时登录打开命令行界面输入查看当前目录下的文件命令ls
或者ls -l
。
ls:显示当前路径下的所有文件
ls -l:显示当前目录下所有文件及其文件的用户属性及其每个组可使用的权限
注意这里可能无法使用
ll
,因为这个命令需要在配置文件中修改添加一个属性值ls -l=ll
。
在权限显示的地方可以看到分成了三组,是因为Linux中对权限要求非常严谨,分为三个用户载体。
前三个为
所有者
相当于是文件的创建者,拥有对文件的最高权限。中间的三个是
所属组
相当于是文件所有者所在的组,组成成员对文件的访问权限由这组权限决定。后三个为
其他用户
,不属于文件所属组。
既然文件有权限划分,如果需要修改文件或者执行文件时,没有相应的权限时,就需要修改文件权限了。
修改文件操作权限
一、修改所属组
- 修改文件权限有几种方法可以选用。这个文件如果没有权限去执行就将他修改到有权限执行的地方,所以第一个方法也叫
修改文件所属组
。
chgrp [-R] 属组名 文件名
- -R : 该参数表示
recursion(递归)
意味着将其文件所在的目录的所有文件的所属组都会修改。
二、修改文件所有者
- 也可以针对文件进行修改,直接将当前用户改为文件的所有者。
chown [-R] 所有者 文件名
chown [-R] 所有者:所属组 文件名
接下来我们将一个文件的所属组和所有者修改一下并显示最终结果。
三、修改文件的权限
- 直接针对文件的修改,修改文件权限,也就是修改
rwx
这三个字母
- 修改数字(对777有印象的老铁应该熟悉)
r
:4
w
:2
x
:1
每种身份的权限修改是需要累加的比如在上面的rw-r--r--
代表的数字就是(4+2)(4)(4)=>644
修改权限的指令也是类似,语法如下:
chmod [-R] xyz 文件or目录
-R : 该参数表示recursion(递归)
意味着将其文件所在的目录的所有文件都会修改。
比如将他修改为771
- 修改字母
前面我们清楚了在权限中有三个主导用户
user:主用户
group:组
other:其他用户
在使用字母修改就会用u,g,o
来代表这三种身份的权限,此外这里会多出一个全局身份a(ALL)
这也方便了对三种身份的统一修改,而读,写,可执行,是使用r,w,x
三个字符来表示。
用户 | u(user) | g(group) | o(other) | a(All) |
---|---|---|---|---|
执行方法 | +(加) | -(减) | =(设定) | |
字母 | r(读) | w(写) | x(可执行) |
最基础的直接设定(可以只针对一个用户进行权限修改如u=rw
,u-r
,u+r
)
一次性拿掉所有的一个或者多个相关权限
对于文件权限这部分就到这里,相信老铁们肯定已经掌握了!
文件管理与目录操作
认识基本文件目录,在window中也可以实践一番,可以打开我们电脑的cmd
这个相当于就是我们的根目录
。
目录中存在两种目录①绝对路径 ②相对路径
,这两种分别代表了不同路径的写法。在写绝对路径时,必须要从根目录开始写。而相对路径则只需要使用.
来代表当前路径即可,在Linux中也可以使用..
来表示上级路径,使用~
表示用户的主目录。
使用相对路径和绝对路径切换到一个相同的目录:
当然linux也是这样,接下来可以接触一些对文件或者目录进行操作的Linux命令
。
ls(List Files)
列出所有的目录及其该目录下存在的文件名
ls [-adl]
a:列出所有文件,包括隐藏文件
d:只列出目录本身,不包含目录中的文件
l:列出文件的属性和权限(三种用户权限)
在上面的有提到过,这里我们就不加赘述。
cd(Change Directory)
切换目录 后面可接目录名称或者符号
这里执行的前提条件是需要知道当前的目录,比如我当前的目录就是/home/vboxuser
这个作为原始目录进行绝对路径的写法。(不知道当前路径的可以使用pwd
命令进行查看!其实这也是我们需要学习的一个常用Linux命令)
老铁们,可以自己动手尝试一下。
pwd(print Working Directory)
显示当前所在目录行
pwd [-P]
P:显示出确实的路径,而非使用链接路径
使用区别在同一个文件夹中的一个文件打印出两种不同的格式。
mkdir(make directory)
创建一个Linux目录,可以一次创建一个,也可以一次创建多个目录
mkdir [-mp] 目录名 新建目录名 ……
m:是一种强力的配置文件权限
p:如果需要建立递归目录,需要加上,可以嵌套创建你想要的文件夹
在上面的演示中其实需要使用到这个命令才能得到我上图的操作,当然老铁们也可以直接选择去操作Linux中的文件,同样可以接触到更多有意思的Linux命令。
嵌套创建目录
直接配置文件的权限
创建单个文件只需要在mkdir
后面加你想要的文件名即可,而多个文件只需要进行空格处理即可。也可以针对一个或者多个文件夹进行创建文件,可以同时在多个文件夹中创建。
rmdir(remove directory)
这个命令只限于删除空的目录,虽然可以增加参数来使得其删除非空目录,实际上删除非空目录或者文件有一个额外的命令。
rmdir [-p] 目录名
p:一次可以删除多级空目录,和有内容的目录
看上图可以看出在只使用单个rmdir
时只能删除目录尽头的空目录,而加上-p
以后可以直接删除所写的所有空目录。
cp(copy)
拷贝文件和目录
cp [-afilLpPrsuv] 文件源 目的路径
cp [options] 文件1 文件2 文件3 …… 目的路径
- -a:归档模式,保留文件的属性,递归复制目录,相当于
-pdr
。- -f:强制覆盖目标文件,即使目标文件已经存在。
- -i:交互模式,在覆盖目标文件前提示用户确认。
- -l:创建硬链接而非复制文件。
- -L:跟随源文件的符号链接。
- -n:不覆盖已存在的文件。
- -p:保留文件的属性(如时间戳、权限等)。
- -P:保留文件的结构。
- -r:递归复制,用于复制目录和其内容。
- -s:创建符号链接而非复制文件。
- -u:仅当源文件比目标文件新时才复制。
- -v:显示复制过程中的详细信息。
可以根据需要选择参数。
!
rm(remove)
删除文件或者目录
rm [-fir] 文件or目录
- -f:force(武力)强制忽略不存在的文件夹,不会出现警告
- -i:互动模式,当你需要删除一个文件时询问是否执行删除操作
- -r:递归删除目录,需要谨慎使用,懂得都懂
如果需要删除文件的话,可以直接删除,而对于目录需要使用 -r
进行删除。
mv(move)
移动文件夹或者目录,也可用于修改名称
mv [-bfiu] 源文件 目地文件
mv [options] 文件1 文件2 文件3 …… 目的文件
-b:在覆盖原文件之前为这个文件创建一个备份
-f:与rm一样都是强制的意思,如果目标文件已经存在,不会询问直接覆盖
-i:在每次执行时询问是否执行该操作
-u:只有当源文件比目标文件创建的时间晚时才移动或者重命名
修改文件名称
以上就是一些基本的对文件目录的操作,涉及了增删改查和一些基本的操作,比如复制,移动,相信各位老铁肯定能精通使用这些命令。