centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,install,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课
centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,install,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课
上半节课
mkdir
rm
touch
误删文件用extundelete
cp
install
mv
cat
more
less 分页器
head
tail
下半节课
文件类型
9位权限
一个inode对应一个文件,小文件多inode占用多
目录硬链接数:ls -la |grep "^d" |wc -l
chown
chmod
umask
mkdir -p
创建多个目录
mkdir 12 34 56
mkdir -m 文件权限set file mode (as in chmod),例如700
mkdir -m 700 -p pg_xact
创建多个目录 mkdir 12 34 56
/bin/rm :直接跳过alias,直接执行rm,不提示
touch :若文件存在,更改文件的三个time
rm -rf 删除文件,目录,非空目录 r针对目录 f强制删除
误删文件用extundelete,不要再写数据到硬盘覆写数据,需要inode和文件名还在
1、安装依赖包 yum install -y e2fsprogs*
2、下载并安装extundelete
cp
拷文件 cp 12.log /tmp/1.txt 拷目录,加斜线/tmp/ cp -r 12 /tmp/
会不会覆盖,其实可以把目录当成一个文件 目标目录存在覆盖目录下的文件
-p 等于--preserve=模式,所有权,时间戳
-r --recursive 复制目录及目录内的所有项目
# touch 12/2.txt
# cp -r 12 /tmp/ cp:是否覆盖"/tmp/12/1.txt"? y
# ls /tmp 12
# ls /tmp/12 12 1.txt 2.txt
#/bin/cp -rp .* /tmp/c/ //当前目录下的文件拷贝到/tmp/c/下
install
install 是一个标准命令,用于将文件复制到指定的目录,并设置文件的权限和所有权。它常用于将编译后的程序或下载的二进制文件安装到系统目录中
install 命令的特点
权限设置:可以通过 -m 参数直接设置文件的权限。例如,-m 0755 会将文件权限设置为可执行。
所有权设置:支持设置文件的所有者和所属组,使用 -o 和 -g 选项。
install 可以使用 -d 选项来创建目标目录结构,这是 cp 不具备的功能。
install 示例
假设我们要将文件 minikube-linux-amd64 复制到 /usr/local/bin/ 并命名为 minikube,同时确保它具有正确的执行权限。
install -o root -g root -m 0755 minikube-linux-amd64 /usr/local/bin/minikube install -d /path/to/directory
mv
改名 不用rename
mv 1.txt 2.txt
mv 2.txt /tmp/
目标目录存在不能剪切,不能覆盖
[root@steven ~]# mv 12 /tmp/
mv:是否覆盖"/tmp/12"? y
mv: 无法将"12" 移动至"/tmp/12": 目录非空
需要将目标目录改名才能使用目标目录的目录名
mv bigdesk bigdeskold
mv _si bigdesk
cat -A 显示隐藏字符
less 分页器 几个快捷键:
j下翻
k上翻
g第一行
G最后一行
pageup
pagedown
/ 搜索
n 搜索中下翻
shift+n 搜索中上翻
q 退出
head
head -n
head -c :显示文件前n个字节 head -c 20 log2014.log
tail
tail -f 自动滚动要查看的文件
文件类型
- 普通文件
d 目录文件
b 块设备文件 随机分配 无顺序的 随机读写
c 字符设备文件 有顺序的 顺序读写
s 套接字文件
l 软链接文件
p 管道文件
硬链接文件没有符号表示
套接字文件 socket:运行两个进程进行通信,例如mysql,php,客户端和服务器端通信

权限
9位权限后面是+或.跟selinux和acl有关系

这个大小只是目录本身的大小,Linux不会自动帮你du -sh,需要你自己去du -sh统计整个目录以及子文件和子文件夹的大小

一个inode对应一个文件,ext4=inode+block
目录存文件名
inode存
文件大小
文件时间
属性
所以硬链接可以多个文件用同一个inode,文件名不一样,inode一样
目录不能做硬链接,因为目录包含了子目录和父目录
统计一个目录的硬链接数
ls -la |grep "^d" |wc -l
cd /
ll -d /root/
文件最后更改时间,当然你碰一下touch他,他的更改时间就会改变

chown
改属主 chown hua 2.txt
改属组 chown :hua 2.txt
属主属组一起改 chown hua:hua test
递归修改目录和目录下的文件 chown -R hua:hua test/
chmod
7=rwx
r=4
w=2
x=1
chomd 420 2.txt
chomd u+r g+r o+r 2.txt
chmod -R 777 study/
chmod a=all u=user g=group o=other
chmod all+r
chmod +x 2.txt ==chmod a+x 2.txt
umask
umask命令指定在建立文件时预设的权限掩码。
umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
语法
umask [-S][权限掩码]
参数说明:
-S 以文字的方式来表示权限掩码语法
umask 0022 777-022 755 目录必须有x权限来打开目录 最大777
umask 0022 666-022 644 普通文件最大666
root uid<199 umask 0022
非root uid>199 umask 0002
改umask
umask 001
666-001=666 因为x权限本来就没有
要永久设定umask,要在系统配置文件里写死umask代码
https://blog.csdn.net/qq_33571752/article/details/83826758
vim /etc/profile ##系统
vim /etc/bashrc ##shell
统计文件夹下文件的个数
ls -l | grep "^-" | wc -l
统计文件夹下目录的个数
ls -l | grep "^d" | wc -l
统计文件夹下文件个数,包括子文件
ls -lR | grep "^-" | wc -l
统计文件夹下目录个数,包括子目录
ls -lR | grep "^d" | wc -l
f

浙公网安备 33010602011771号