Linux的文件操作,重拳出击( ̄︶ ̄)

Linux的文件操作

学习Linux的文件操作,一般需要知道一个文件如果你想要操作他,必须知道你对这个文件有什么操作的权限或者修改你自己对文件操作的权限。必须要知道文件有三种权限

r:可读

w:可写

x:可执行

在打开Linux时登录打开命令行界面输入查看当前目录下的文件命令ls

或者ls -l

ls:显示当前路径下的所有文件

ls -l:显示当前目录下所有文件及其文件的用户属性及其每个组可使用的权限

注意这里可能无法使用ll,因为这个命令需要在配置文件中修改添加一个属性值ls -l=ll

在这里插入图片描述

在权限显示的地方可以看到分成了三组,是因为Linux中对权限要求非常严谨,分为三个用户载体。

前三个为所有者相当于是文件的创建者,拥有对文件的最高权限。

中间的三个是所属组相当于是文件所有者所在的组,组成成员对文件的访问权限由这组权限决定。

后三个为其他用户,不属于文件所属组。

既然文件有权限划分,如果需要修改文件或者执行文件时,没有相应的权限时,就需要修改文件权限了。

修改文件操作权限

一、修改所属组
  1. 修改文件权限有几种方法可以选用。这个文件如果没有权限去执行就将他修改到有权限执行的地方,所以第一个方法也叫修改文件所属组
chgrp [-R] 属组名  文件名
  • -R : 该参数表示recursion(递归)意味着将其文件所在的目录的所有文件的所属组都会修改
二、修改文件所有者
  1. 也可以针对文件进行修改,直接将当前用户改为文件的所有者。
chown [-R] 所有者 文件名
chown [-R] 所有者:所属组 文件名

接下来我们将一个文件的所属组和所有者修改一下并显示最终结果。

在这里插入图片描述

三、修改文件的权限
  1. 直接针对文件的修改,修改文件权限,也就是修改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 …… 目的路径
  1. -a:归档模式,保留文件的属性,递归复制目录,相当于-pdr
  2. -f:强制覆盖目标文件,即使目标文件已经存在。
  3. -i:交互模式,在覆盖目标文件前提示用户确认。
  4. -l:创建硬链接而非复制文件。
  5. -L:跟随源文件的符号链接。
  6. -n:不覆盖已存在的文件。
  7. -p:保留文件的属性(如时间戳、权限等)。
  8. -P:保留文件的结构。
  9. -r:递归复制,用于复制目录和其内容。
  10. -s:创建符号链接而非复制文件。
  11. -u:仅当源文件比目标文件新时才复制。
  12. -v:显示复制过程中的详细信息。

可以根据需要选择参数。

在这里插入图片描述

!在这里插入图片描述

rm(remove)

删除文件或者目录

rm [-fir] 文件or目录
  1. -f:force(武力)强制忽略不存在的文件夹,不会出现警告
  2. -i:互动模式,当你需要删除一个文件时询问是否执行删除操作
  3. -r:递归删除目录,需要谨慎使用,懂得都懂

在这里插入图片描述

如果需要删除文件的话,可以直接删除,而对于目录需要使用 -r进行删除。

mv(move)

移动文件夹或者目录,也可用于修改名称

mv [-bfiu] 源文件 目地文件
mv [options] 文件1 文件2 文件3 …… 目的文件

-b:在覆盖原文件之前为这个文件创建一个备份

-f:与rm一样都是强制的意思,如果目标文件已经存在,不会询问直接覆盖

-i:在每次执行时询问是否执行该操作

-u:只有当源文件比目标文件创建的时间晚时才移动或者重命名

在这里插入图片描述

修改文件名称

在这里插入图片描述

以上就是一些基本的对文件目录的操作,涉及了增删改查和一些基本的操作,比如复制,移动,相信各位老铁肯定能精通使用这些命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

✅鉴权—cookie、session、token、jwt、单点登录

基于 HTTP 的前端鉴权背景cookie 为什么是最方便的存储方案,有哪些操作 cookie 的方式session 方案是如何实现的,存在哪些问题token 是如何实现的,如何进行编码和防篡改?jwt 是做什么的?refresh token 的实现和意义ses…

《C++面向对象程序设计》✍学习笔记

C的学习重点 C 这块,重点需要学习的就是一些关键字、面向对象以及 STL 容器的知识,特别是 STL,还得研究下他们的一些源码,下面是一些比较重要的知识: 指针与引用的区别,C 与 C 的区别,struct 与…

网络技术ensp 一个简单的交换机配置案例

由于工作调岗,转战网络运维了,第一次网络笔记 1.,目的:2台主机相互可以ping通,并且可以ping通网关地址,设备:2台主机,2台交换机 2网络拓扑图如下 3.主机pc1的配置信息 ip&#xff…

Xcode与Swift开发小记

文章目录 引子Xcode工程结构核心概念Swift语法速记(TODO)小技巧单元测试中使用awaitSwiftUI中使用ListView中取数据 常见问题Xcode添加package时连接github超时Xcode无法修改快捷键,一闪而过 引子 鉴于React Native目前版本在iOS上开发遇到诸多问题,本以…

前端取图片相同颜色作为遮罩或者背景

需求 遮罩层取图片相同/相似的颜色作为遮罩 效果 做法 npm库 grade.js 所提供图像中前 2 个主色生成的互补渐变https://github.com/benhowdle89/grade COLOR THIEF 只需使用Javascript即可从图像中获取调色板。 https://github.com/lokesh/color-thief https://lokeshd…

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析 学习前言源码下载地址网络构建一、什么是Diffusion Transformer (DiT)二、DiT的组成三、生成流程1、采样流程a、生成初始噪声b、对噪声进行N次采样c、单次采样解析I、预测噪声I…

kitti数据显示

画出track_id publish_utils.py中 def publish_3dbox(box3d_pub, corners_3d_velos, types, track_ids):marker_array MarkerArray()for i, corners_3d_velo in enumerate(corners_3d_velos):marker Marker()marker.header.frame_id FRAME_IDmarker.header.stamp rospy.T…

Pytorch训练RCAN QAT超分模型

Pytorch训练RCAN QAT超分模型 版本信息测试步骤准备数据集创建容器生成文件列表创建文件列表的代码执行脚本,生成文件列表训练RCAN模型准备工作修改开源代码编写训练代码执行训练脚本可视化本文以RCAN超分模型为例,演示了QAT的训练过程,步骤如下: 先训练FP32模型再加载FP32训练…

【随笔】固态硬盘数据删除无法恢复(开启TRIM),注意数据备份

文章目录 一、序二、机械硬盘和固态硬盘的物理结构与工作原理2.1 机械硬盘2.11 基本结构2.12 工作原理 2.2 固态硬盘2.21 基本结构2.22 工作原理 三、机械硬盘和固态硬盘的垃圾回收机制3.1 机械硬盘GC3.2 固态硬盘GC3.3 TRIM指令开启和关闭 四、做好数据备份 一、序 周末电脑突…

【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章目录 1. 介绍2. 实例使用2.1 登录界面2.2 对比两次密码是否相同2.3 通过按钮显示当前输入的密码(并对2.2进行优化)2.4 结语 3. 正则表达式3.1 QRegExp3.2 验证输入内容 4. 资源代码 1. 介绍 关于 QLineEdit 的详细介绍,可以去查阅官方文…

[计算机网络]--IP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…

202432读书笔记|《泰戈尔的诗》——什么事让你大笑,我生命的小蓓蕾

202432读书笔记|《泰戈尔的诗》——什么事让你大笑,我生命的小蓓蕾 《泰戈尔写给孩子的诗(中英双语版)》作者拉宾德拉纳特泰戈尔文 张王哲图,图文并茂的一本书,文字与图画都很美,相得益彰!很值得…

【Memory协议栈】EEPROM Abstraction模块详细介绍

目录 前言 正文 1.功能简介 2.关键概念 3.功能详解 3.1 Addressing scheme and segmentation 3.2 Address calculation 3.3 Limitation of erase / write cycles 3.4 Handling of “immediate” data 3.5 Managing block consistency information 4.关键API定义 4.…

学习磁盘管理

文章目录 一、磁盘接口类型二、磁盘设备的命名三、fdisk分区四、自动挂载五、扩容swap六、GPT分区七、逻辑卷管理八、磁盘配额九、RAID十、软硬链接 一、磁盘接口类型 IDE、SATA、SCSI、SAS、FC(光纤通道) IDE, 该接口是并口。SATA, 该接口是串口。SCS…

golang学习2,golang开发配置国内镜像

go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct

K8S部署Java项目(Gitlab CI/CD自动化部署终极版)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

websocket入门及应用

websocket When to use a HTTP call instead of a WebSocket (or HTTP 2.0) WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 是双向通讯,有状态,客户端一(多)个与服务端一(多&#xff09…

代码随想录刷题第43天

第一题是最后一块石头的重量IIhttps://leetcode.cn/problems/last-stone-weight-ii/,没啥思路,直接上题解了。本题可以看作将一堆石头尽可能分成两份重量相似的石头,于是问题转化为如何合理取石头,使其装满容量为石头总重量一半的…

【AI Agent系列】【MetaGPT多智能体学习】0. 环境准备 - 升级MetaGPT 0.7.2版本及遇到的坑

之前跟着《MetaGPT智能体开发入门课程》学了一些MetaGPT的知识和实践,主要关注在MetaGPT入门和单智能体部分(系列文章附在文末,感兴趣的可以看下)。现在新的教程来了,新教程主要关注多智能体部分。 本系列文章跟随《M…