Linux学习笔记-文件和目录管理

it2022-05-05  112

常用的目录处理命令

切换工作目录 # cd [绝对路径或相对路径] 显示当前所在目录 # pwd [-P] 参数与选项: -P : 显示出当前路径,而非使用连接的路径 新建目录 # mkdir [-mp] 目录名称 参数与选项: -m: 配置文件夹的权限,直接设置,不受默认权限的影响(umask) -p : 直接将所需要的目录(上层目录)递归创建起来 删除“空”目录 # rmdir [-p] 目录名称 参数与选项: -p : 连同上层的空目录一同删除

 

常用的文件与目录管理命令

查看文件与目录 # ls [-adl] 目录名称 参数与选项: -a : 全部文件,连同隐藏文件(开头为.的文件一起列出 -d : 仅列出目录本身,而不是列出目录内的文件数据 -l : 列出长数据串,包含文件的属性与权限等数据 复制文件或目录 # cp [-adfilprsu] source destination # cp [options] source1 source2 source3 ... directory 参数与选项: -a : 保持数据特性一致,相当于-pdr -d : 若源文件为连接文件,则复制其属性而非文件本身 -f : 若目标文件已经存在且无法开启,则删除后再尝试一次 -i : 若目标文件已经存在,覆盖时会先进行询问操作 -l : 进行硬连接的连接文件创建,而非复制文件本身 -p : 连同文件的属性一起复制,而非默认属性 -r : 递归持续复制,用于目录的复制行为 -s : 复制陈伟符号链接文件,即快捷方式文件 -u : 若目标文件比源文件久才更新目标文件 移除文件或目录 # rm [-fir] 文件或目录 参数与选项: -f : 忽略不存在的文件,不会出现警告信息 -i : 删除前会先进行询问操作 -r : 递归删除 移动文件或目录、重命名 # mv [-fiu] source destination #mv [options] source1 source2 source3 ... destination 参数与选项: -f : 若目标文件已存在,不会询问直接覆盖 -i : 若目标文件已经存在,会询问是否覆盖 -u : 若目标文件已经存在,且源文件较新才更新

 

 

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

关于文件的时间属性有三个

modification time(mtime) 当文件的内容数据被更改时,更新此时间status time(ctime) 当文件的属性改变时,更新此时间access time(atime) 当文件内容被取用,如cat命令,更新此时间

PS:默认情况下,ls显示的是文件的mtime

# touch [-acdmt] 文件 参数与选项: -a : 仅修atime -c : 仅修ctime,若文件不存在则不创建新文件 -d : 后面可以接欲修改时间而不是当前日期,格式为[YYMMDDhhmm] -m : 仅修改mtime -t : 后面可以接欲修改时间而不是当前日期,格式为[YYMMDDhhmm]

 

 

文件默认权限

umask : 目前用户在新建文件或者目录的时候的权限默认值(通过 umask 或者 umask -S 查看),其分数(umask查询)含义是需要减掉的权限

用户新建文件,默认没有可执行(x)权限,即-rw-rw-rw-用户新建目录,默认开放所有权限,即drwxrwxrwx

若umask为 0022

新建文件 : (-rw-rw-rw-) - (-----w--w-) ==》 -rw-r--r--新建文件夹 : (drwxrwxrwx) - (d----w--w-) ==》 drwxr-xr-x

 

文件隐藏属性

设置文件的隐藏属性 # chattr [+-=] [aisu] 文件或目录 参数与选项: + : 增加某一个特殊参数,其他原本存在的参数不改变 - : 删除某一个特殊参数,其他原本存在的参数不改变 = : 仅有后面的参数 -a : 文件将只能增加数据,而不能改变和修改数据,仅root可设置 -i : 文件不能被删除、改名,设置连接也无法写入或添加数据,仅root可设置 -u : 文件被删除,其数据内容仍存在磁盘中 显示文件隐藏属性 # lsattr [-adR] 文件或目录 参数或选项: -a : 将隐藏文件的属性也列出 -d : 如果接的是目录,仅列出目录本身的属性而非目录内的文件名 -R : 连同子目录的数据也一并列出

 

文件的特殊权限

SetUID,简称SUID

当s出现在owner的x权限上时,即为SUIDSUID权限仅对二进制程序有效执行者对该程序具有x权限本权限仅在执行该程序过程中有效执行者将具有本程序owner的权限

Set GID,简称SGID

当s出现在group的x权限上时,即为SGID

SGID可以针对文件或者目录设置

对于文件来说,SGID功能如下

SGID对二进制程序有效执行者对该程序具有x权限执行者在改程序过程中获得该程序用户组的支持

对于目录来说,SGID功能如下

用户对此目录有用r和x权限用户在此目录下的有效用户组将会变成该目录的用户组若用户在此目录下具有w权限,则用户新建的文件的用户组与此目录用户组相同

Sticky Bit,简称SBIT

当t出现在others的x权限上时,即为SBIT该权限仅对目录有效用户对此目录有w和x权限当用户在该目录下新建文件或目录时,仅自己和root有权利删除该文件

特殊权限的设置

SUID为4SGID为2SBIT为1

chmod命令中,在原权限参数xyz前加上需要添加的特殊权限的和

或者通过符号处理 chmod [ugo] [+-] [st] 多个表达式之间用逗号分隔

PS:当没有对应的x权限,又赋予特殊权限,对应权限位置上会显示S或者T

 

文件的查询

脚本文件名的查询

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

 

文件名的查询

# whereis [-bmsu] dirname\filename 选项与参数: -b : 只查找二进制格式的文件 -m : 只查找在说明文件manual路径下的文件 -s : 只查找source源文件 -u : 查找不在上面三个选项当中的其他文件 # locate [-ir] keyword 选项与参数: -i : 忽略大小写的差异 -r : 后面可接正则表达式的显示方式 # find [PATH] [option] [action]

PS: find 命令查询较慢, whereis 和 locate 查询较快同时也是常用的命令。前者是直接查询硬盘的,所以等待时间较慢但结果是实时的;后两者是通过查询 /var/lib/mlocate/ 的数据库结果,但是系统通常相隔一段时间才更新一次数据库,所以查询结果可能滞后,即查到已经删除的文件或者找不到新建的文件

转载于:https://www.cnblogs.com/gdut-chj/p/7814951.html


最新回复(0)