linux 文件管理 删除 复制 移动 文件通配符 软链接 umaks acl
Linux文件类型
- - 普通文件
- d 目录文件
- b 块设备
- c 字符设备
- l 符号链接文件
- p 管道文件pipe
- s 套接字文件socket
基名:basename
目录名:dirname
basename /etc/sysconfig/network 结果是network,只关心文件名 dirname /etc/sysconfig/network 结果是/etc/sysconfig
---------------------------------------------------------------------------------------------------------------------------------------
用法:ls [options] [ files_or_dirs ]
示例
- ls -a 包含隐藏文件
- ls -l 显示额外的信息
- ls -R 目录递归
- ls -ld 目录和符号链接信息
- ls -1 文件分行显示
- ls –S 按从大到小排序
- ls –t 按mtime排序
- ls –u 配合-t选项,显示并按atime从新到旧排序
- ls –U 按目录存放顺序显示
- ls –X 按文件后缀排序
文件通配符
- * 匹配零个或多个字符
- ? 匹配任何单个字符
- ~ 当前用户家目录
- ~mage 用户mage家目录
- ~+ 当前工作目录
- ~- 前一个工作目录
- [0-9] 匹配数字范围
- [a-z]:字母
- [A-Z]:字母
- [wang] 匹配列表中的任何的一个字符
- [^wang] 匹配列表中的所有字符以外的字符
ls -R /boot/ 与 ls /boot/* 效果是不一样的
ls -R /boot/ 可以列出所有的文件不管有多深 ls /boot/* 只能进入到boot的直接子文件 (只能看到两级),能看到boot下面的文件,和boot下面直接子目录的内容。
* 不包含隐藏文件 ls /etc/* 列出的是etc 以及etc下面目录里的文件 ,如果只是看etc下的文件 不看etc下面目录里的文件 (ls -d /etc/*)==(ls /etc/)
-------------------------------------------------------------------------------------------------------------
rm
-f 选项 强制删除 就不会问你要不要删除
-r 是删除目录的时候需要用的
rm -rf test2/* 是删除test2 目录下所有的东西,但是不删除test2。rm -rf test2/ 就会把test2都删掉
-------------------------------------------------------------------------------------------------------------------------------------------
cp 常用选项
- -i 覆盖前提示
- -n 不覆盖,注意两者顺序
- -r, -R 递归复制目录及内部的所有内容
- -a 归档,相当于-dR --preserv=all
- -d --no-dereference --preserv=links 不复制原文件,只复制链接名
- --preserv[=ATTR_LIST]
cp -r test1/. test2/ 把test1下的所有文件(包括隐藏文件)拷贝到 test2的目录下面
cp 文件1 目标文件(如果没有则会创建)
cp 文件1 文件2 目标文件夹(一定要存在)
cp -r 目录一 目标目录2 ( 如何目录2不存在,则会创建目录2,然后把目录1的文件拷贝到目录2下,如果目录2存在,则会把目录1 拷贝到目录2下面)
cp -a 最牛逼的选项 完完全全的复制下来 用于归档(备份)
-------------------------------------------------------------------------------------------------------------------------------------------------------
mv
mv 目录1 目录2 ( 目录2 如果不存在,相当于移过去改名,如果存在目录2,则直接移动到目录2下面)
mv 多个文件 目录1(一定要存在)
mv 32132131/etc/* etcba/ //这种是把etc下的文件 移动到 etcba下面,etcba下面不会产生etc目录, mv etcba/ 32132131/etc/ ///这种是会在32132131/etc/ 产生etcba的目录
-----------------------------------------------------------------------------------------------------------------------------------------
mkdir [-p]直接创建多层目录 名字 新建目录 (创建一个目录就不用加p,创建多层目录加p)
------------------------------------------------------------------------------------------------------------------------------------------------------
inode(节点) 在一个分区内,每个分区有自己独立的目录结构,每个分区都有两部分数据,一个数元数据,一个是数据本身。每个分区里面节点编号是唯一的,每个文件节点编号怎么查呢 ll -i,这个节点编号是有范围的,df -i 查看每个分区的inode节点使用情况,一个文件就会占用一个节点,所以空间沾满的时候,也可能是inode节点被沾满了。
所以文件是不是一样 就是看inode编号是不是一样的,类似于身份证号,号码一个 那就是同一个文件,ln f2.txt f2.txt.link //就是为一个文件创建了 另外一个名字,但是inode号码都一样,所以两个文件其实就是同一个文件。这种就是 硬链接,
软连接: ln -s /home/test/32132131/hxf/ /home/test/2023-06-29/hxf // 源目录 后面是链接文件 也就是访问/home/test/2023-06-29/hxf 的时候,就相当于访问了/home/test/32132131/hxf/
如果删除软连接的话 rm -f /home/test/2023-06-29/hxf 后面不能带有/,就只会把软连接删掉
硬链接和软链接区别
- 1本质:硬链接:同一个文件多个名字,软链接不同文件 硬链接文件删除后,不影响,软链接源文件删除后,受影响
- 2跨分区 硬链接不能跨分区
- 3目录 硬链接不能是目录
- 4 硬链接没有办法区分源文件和链接文件
- 5inode号 硬链接相同
- 6链接数 硬链接会增加链接数
- 7软连接的源文件一定要用 绝对路径
- 8文件类型
- 9ln -s
- 10 软链接 权限777
-------------------------------------------------------------------------------------------------------
目录的权限
读:可以列出文件名
执行:可以进入目录,可以访问目录的文件内容
写:创建和删除文件,前提是有x权限

练习题

umask,每个用户都有自己的umask值
创建文件和文件夹都有默认权限 umask
umask+default=777 目录|666 文件 (因为 新建文件默认都没有执行权限的,所以就不允许有执行权限的)
默认权限:
文件:666-umask,如果有奇数加1,偶数不变
目录:777-umask
umask 123 ///这种只是临时生效 全局设置: /etc/bashrc 用户设置:~/.bashrc
acl
传统的文件权限只能针对三种分类设置权限,所属人,所属组,其他人,只能设置三种权限,假如现在有需求,四个人设置四个不同的权限,那就没办法做到了 ,就需要使用到acl了
举例子 -m表示修改 u指定用户后面是权限,最后是文件。 意思就是 f1文件修改权限,对于用户wang是0,啥权限都没有
setfacl -m u:wang:0 f1
对文件设置acl后,属性后面就会有个+号
getfacl filename ///查看这个文件的acl权限
setfacl -x u:wang f1 ///删除f1文件上wang用户的acl权限
setfacl -b f1 ///清空 f1文件上的所有acl权限
权限:
1 看所有者
2 ACL权限
对用户
对组
3 other

浙公网安备 33010602011771号