Linux 文件 目录管理

news2025/2/27 17:28:14

Linux 文件

基本属性

             Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

             可以使用命令:ll 或 ls –l 来显示一个文件的属性以及文件所属的用户和组,如图所示:

详细解析命令:ls -l 中显示的内容

             使用命令:ll 或 ls –l 时,会显示一个文件的属性以及文件所属的用户和组等信息,对这些信息详细解析,如下所示:

drwxr-xr-x.  3 root root      101 9月   8 01:52 abrt

             如图所示:从左至右的 10 个字符中,第 1 个字符确定文件类型,接下来的字符中,以三个为一组,均为 rwx 的三个参数的组合。

             第 1 个字符确定文件类型,类型有如下几种:

  • d     表示目录;
  • -      表示文件;
  • l      表示为链接文档(link file);
  • b     表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • c     表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

             第 2-4 位确定属主(该文件的所有者)拥有该文件的权限。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 需要注意的是,这三个权限的位置不会改变,如果没有权限,就会显示为减号 - 。

             第 5-7 位确定属组(所有者的同组用户)拥有该文件的权限。

             第 8-10 位确定其他用户拥有该文件的权限。

             第 10 个字符之后的字符的意义可参考上面那张图,这里不再赘述。

文件的属主和属组

             在Linux系统中,文件都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为 "文件所属组的同组用户" 和 "其他用户"。因此,Linux系统按 "文件所有者"、"文件所有者同组用户" 和 "其他用户" 来规定了不同的文件访问权限。

drwxr-xr-x.  3 root root      101 9月   8 01:52 abrt

             在上面的实例中,abrt 文件是一个目录文件,属主和属组都为 root,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

             但对于 root 用户而言,一般情况下,文件的权限对其不起作用。

更改文件属性

             Linux 中通常使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change owner) : 修改所属用户与组。
  • chmod (change mode) : 修改用户的权限。

chgrp(change group)

             用于变更文件或目录的所属群组。语法:

chgrp   [ * ]   [--help]   [--version]   属组名   文件或目录 

chgrp   [ * ]   [--help]   [--reference=<参考文件或目录>]   [--version]    文件或目录 

[ * ] 参数说明:

  • -c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
  • -f 或 --quiet 或 --silent:  不显示错误信息。
  • -h 或 --no-dereference:  只对符号连接的文件作修改,而不改动其他任何相关文件。
  • -R 或 --recursive:  递归处理,将指定目录下的所有文件及子目录一并处理。
  • -v 或 --verbose:  显示指令执行过程。

[ --help ] 参数说明: --help:在线帮助。

[--version] 参数说明:--version:显示版本信息。

[--reference=<参考文件或目录>] 参数说明:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

             实例1,改变/etc/chen目录下文件hello.cpp的群组属性:

             实例2,根据指定文件改变文件的群组属性:

 

chown(change owner

             设置文件所有者和文件关联组的命令。语法:

chown   [ * ]   [--help]   [--version]   属主名   文件名
chown   [ * ]   [--help]   [--version]   属主名:属组名   文件名

 [ * ] 参数说明: 

  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件

[ --help ] 参数说明: --help : 显示辅助说明

[ --version ] 参数说明: --version : 显示版本

             例如,进入 /etc/chen目录,将hello.cpp的拥有者和群组改为chen这个账号:

chmod(change mode):

             更改Linux 文件的 9 个基本属性(分别是 owner(属主)/group(属组)/others(其他) 三种身份各自的 read(读)/write(写)/execute(执行) 权限)。属性有两种设置方法,一种是数字,一种是符号。

数字类型改变文件权限

             文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!因此,可以使用数字来代表各个权限,各权限的分数为:r(4)、w(2)、x(1),将各组的权限(r/w/x)分数累加起来。例如,当权限为: -rwxrwx--- ,那么分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

             所以,使用数字更改文件权限时,该文件的权限数字xyz就是 770,此时,指令 chmod 的语法为:

 chmod   [ * ]   [--help]   [--version]   xyz   文件或目录

xyz : 数字类型的权限属性(比如:770)。

[ * ] 参数说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

[--help] 参数说明:--help : 显示辅助说明

[--version] 参数说明:--version : 显示版本

             例如, 将目录/etc/chen下的文件hello.cpp的所有的权限都设定为启用,那么权限的分数就成为 [4+2+1][4+2+1][4+2+1]=777:

符号类型改变文件权限

             使用 u, g, o 分别代表三种身份:user(用户)、group(组)、others(其他)的权限,此外, a 代表 all,即全部的身份。

             读、写、执行的权限可以写成 r, w, x,也可使用+(增加权限)、-(取消权限)、=(唯一设定权限)将权限去掉而不改变其他已存在的权限。如下图所示:

             例如, 目录/etc/chen下的文件hello.cpp权限设置为: -rwxr-xr-- ,可以使用命令:chmod  u=rwx,g=rx,o=r  hello.cpp 来设定:

             例如, 使用-(除去)将全部人的可执行权限去掉而不改变其他已存在的权限:

Linux 目录管理

             Linux 的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。

绝对路径与相对路径

  • 绝对路径:路径的写法,由根目录 / 写起,例如: /etc/chen 这个目录。

  • 相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。


处理目录的常用命令

             几个常见的处理目录的命令:

  • ls(list files): 列出目录及文件名
  • cd(change directory):切换目录
  • pwd(print work directory):显示目前的目录
  • mkdir(make directory):创建一个新的目录
  • rmdir(remove directory):删除一个空的目录
  • cp(copy file): 复制文件或目录
  • rm(remove): 删除文件或目录
  • mv(move file): 移动文件与目录,或修改文件与目录的名称

             注:可以使用:man [命令] ,帮助查看各个命令的使用文档,如 :man cp。

ls

              列出目录。语法:

ls   [选项]   目录名称
ls   [--color={never,auto,always}]   目录名称
ls   [--full-time]   目录名称

[ 选项 ] 参数说明:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
  • -r     逆序排列。
  • -t     按时间信息排序。
  • -u     使用最近访问时间代替最近修改时间为依据来排序(使用 “ -t ”选项时)或列出(使用“ -l ”选项时)。

[ --color={never,auto,always} ] 参数说明:指定是否使用颜色区别文件类别。

[ --full-time ] 参数说明:列出完整的时间,而不是使用标准的缩写。

              例如:将目录/etc下的所有文件列出来(含属性与隐藏档)

 

cd

              变换工作目录的命令。语法:

 cd    [相对路径/绝对路径]

              例如,使用绝对路径切换到/etc/chen/documents目录

              使用相对路径切换到 documents 目录

pwd

              pwd 是 Print Working Directory 的缩写,显示目前所在目录。语法:

pwd  [-P]

[ -P ] 参数说明:显示出确实的路径,而非使用链接 (link) 路径。

              例如, 命令:pwd 显示出当前实际的工作目录,而非链接档本身的目录名: 

              而且/var/mail是一个链接档,链接到 /var/spool/mail 。因此,使用命令:pwd -P 后,会不以链接档的数据显示,而是显示正确的完整路径

mkdir

              mkdir 是 make directory 的缩写,创建新的目录。语法:

 mkdir   [选项]    目录名称

[ 选项 ] 参数说明:

  • -m :配置文件的权限;
  • -p :将所需要的目录(包含上一级目录)递归创建起来!

              例如, 目录/etc/chen 底下创建数个新目录:

              加入选项 -p ,创建多层目录

              创建权限为 r-xr-xr-x 的目录。需要使用选项 -m 。如果没有加上 -m 来强制配置属性,系统会使用默认属性。

rmdir

              删除空的目录。语法:

rmdir   [选项]   目录名称

[ 选项 ] 参数说明:

  • -p :从该目录起,一次删除多级空目录

              例如, 删除目录/etc/chen/tmp 底下的空目录 test ,以及非空目录test1。

cp

              拷贝文件和目录。语法:

cp   [ 选项 ]   来源档(source)   目标档(destination)

cp   [ 选项 ]   source1   source2   source3 ....   directory

[ 选项 ] 参数说明:

  • -a:复制时,尽可能保持文件的结构和属性.(但不保持目录结构)等同于 -dpR。(常用)

  • -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;

  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

  • -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;

  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

  • -r:递归持续复制,用于目录的复制行为;(常用)

  • -s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;

  • -u:如果存在的目标档有相同的,或者更新的修改时间,不复制目录(文件).

              例如, 将 /etc/chen 目录下的 test.c 复制到 /home/chen 下,并命名为 hello.c

rm

              移除文件或目录。语法:

rm   [ 选项 ]   文件或目录

[ 选项 ] 参数说明:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除!最常用在目录的删除中!慎用!

              例如, 将/home/chen 下的 hello.c删除掉!加上 -i 选项会显示询问:

mv 

              移动文件与目录,或修改名称。语法:源文件

mv   [ 选项 ]   源文件(source)   目标文件(destination)

mv   [ 选项 ]   source1   source2   source3 ....   目录(directory)

[ 选项 ] 参数说明:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

              例如, 将 /etc/chen 目录下的 tmp 移动到 /home/chen 下  

 

              将 /etc/chen 目录下的 hello.cpp 移动到 /home/chen 下,并更名为 test.cpp

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

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

相关文章

科目二倒车入库

调整座位和后视镜 离合踩到底大腿小腿成130-140 上半身90-100 座椅高度能看到前方全部情况 后视镜调节到能看到后门把手&#xff0c;且后门把手刚好在后视镜上方边缘、离车1/3处。 保持直线&#xff1a; 前进&#xff1a; 车仪表盘中央的原点和地面上的黄线擦边&#xff…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

现代循环神经网络-门控循环单元(GRU)

理论 门控隐状态 门控循环单元与普通的循环神经网络之间的关键区别在于&#xff1a; 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态&#xff0c; 以及应该何时重置隐状态。 这些机制是可学习的&#xff0c;并且能够解决了上面列出的问题。 例如&…

WPF 控件专题 RadioButton样式一

RadioButton样式示例 Style样式修改如下&#xff1a;通过改下RadioButton的ControlTemplate&#xff0c;修改控件所呈现的外观形状和颜色&#xff1b;通过IsChecked属性触发器样式变化。 <UserControl.Resources><Style x:Key"defaultRadioStyle" TargetT…

Ubuntu中安装Anaconda 如何将 路径导入为全局变量

第一步&#xff1a;将你的anaconda 路径复制下来&#xff0c;在终端输入对应路径。 echo export PATH"/home/你的用户名/anaconda3/bin:$PATH" >> ~/.bashrc 第二步&#xff1a;在终端输入下面命令或者重启系统。 source ~/.bashrc 在对应的anaconda安装目…

RocketMQ 发送事务消息

文章目录 事务的相关理论事务ACID特性CAP 理论BASE 理论 事务消息应用场景MQ 事务消息处理处理逻辑 RocketMQ 事务消息处理流程官网事务消息流程图 rocketmq-client-java 示例&#xff08;gRPC 协议&#xff09;创建事务主题生产者消费者 rocketmq-client 示例&#xff08;Remo…

pycharm中恢复原始界面布局_常用快捷键_常用设置

文章目录 1 恢复默认布局1 .1直接点击file→Manage IDE Settings→Restore Default Settings&#xff08;如下图所示&#xff09;&#xff1a;1.2 直接点击Restore and Restart&#xff0c; 然后Pycharm就会自动重启&#xff0c;重启之后的界面就是最原始的界面了 2 改变主题2.…

(NDK编译)详解使用Android.mk编译的C/C++程序过程

想要在Android设备上运行C/C程序可执行文件&#xff0c;可采用一个方法就是使用NDK编译&#xff0c;很多时候要比gcc编译更适合&#xff0c;这里我采用的是imx6q开发板上面装载了自己编写的Android6.0.1镜像&#xff0c;在Ubuntu64位系统上采用NDK编译。 目录 1.准备文件 2.…

任意文件的上传和下载

1.任意文件下载&#xff08;高危&#xff09; 定义 一些网站由于业务需求&#xff0c;往往需要提供文件查看或文件下载功能&#xff0c;但若对用户查看或下载的文件不做限制&#xff0c;则恶意用户就能够查看或下载任意敏感文件&#xff0c;这就是文件查看与下载漏洞。 可以下载…

BCC介绍

本文参考以下博文&#xff1a; bcc/ebpf使用介绍一文看懂eBPF、eBPF的使用&#xff08;超详细&#xff09; ebpf之bcc程序入门 特此致谢&#xff01; BCC&#xff08;有时也写作bcc&#xff09;的全称是BPF Compiler Collection&#xff0c;即BPF编译器集合。BCC是一个开源项…

QT实现钟表

1、 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPaintEvent> //绘制事件类 #include <QDebug> //信息调试类 #include <QPainter> //画家类 #include <QTimerEve…

vue3+vite3项目打包优化

vue3vite3项目打包优化 1、前言2、视图分析工具rollup-plugin-visualizer3、路由懒加载4、第三方库CDN引入5、使用 gzip 压缩6、按需引入第三方库7、使用 Tree Shaking8、剔除console和debugger9、分包策略10、图片压缩 1、前言 Vue项目开发完毕后&#xff0c;对项目进行打包发…

数据预处理方式合集

删除空行 #del all None value data_all.dropna(axis1, howall, inplaceTrue) 删除空列 #del all None value data_all.dropna(axis0, howall, inplaceTrue) 缺失值处理 观测缺失值 观测数据缺失值有一个比较好用的工具包——missingno&#xff0c;直接传入DataFrame&…

windows 查看端口被占用

1. 使用netstat -ano | findstr 8181 命令查看被占用的端口所在的pid 2. 查看是被哪个应用占用tasklist|findstr "pid" 3.杀死他 taskkill -pid 19200 -f

30.链表练习题(1)(王道2023数据结构2.3.7节1-15题)

【前面使用的所有链表的定义在第29节】 试题1&#xff1a; 设计一个递归算法&#xff0c;删除不带头结点的单链表L中所有值为x的结点。 首先来看非递归算法&#xff0c;暴力遍历&#xff1a; int Del(LinkList &L,ElemType x){ //此函数实现删除链表中为x的元素LNode *…

详细介绍下VLAN隔离与VLAN之间互联

什么VLAN&#xff1f; VLAN代表虚拟局域网&#xff08;Virtual Local Area Network&#xff09;&#xff0c;它是一种在物理网络基础上创建逻辑上独立的虚拟网络的技术。VLAN允许将一个局域网划分为多个虚拟的逻辑网络&#xff0c;这些虚拟网络在逻辑上相互隔离&#xff0c;就…

2023年项目管理工具使用趋势分析及预测

随着技术的不断进步以及工作和领导态度的演变&#xff0c;各个行业都在经历着深刻的变革。项目管理领域同样如此&#xff0c;团队项目的技术和人员管理风格及策略正在不断地调整与优化&#xff0c;以适应新冠疫情后所呈现出的新的工作场所格局。在此背景下&#xff0c;以下是我…

win部署CRM

win部署crm&#xff09; 1.phpstudy2.composer3.代码4.其他配置 周末锴哥让我帮他部署了一个CRM&#xff0c;写个教程&#xff0c;方便之后他用。锴哥用的是 NxCrm&#xff0c;先把代码下下来。 1.phpstudy 1.首先是下载小皮面板&#xff0c;配置php的环境。这里面下载了php8…

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接&#xff1a;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接。不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&am…

MacOS上的Pip和Python升级指南

在MacOS系统上&#xff0c;保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python&#xff0c;你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南&#xff0c;助你打造更强大的开发环境。…