linux文件与目录管理笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
### Linux文件与目录管理 
 
----------
 
绝对路径: / 
相对路径:不以/开头的   
当前目录 . 
上一个工作目录 -  
用户主目录 ~ root账户的主目录是/root  其他用户是/home/账户名  
cd ~leyi  切换到leyi账户的主目录,即/home/leyi   
 
pwd 显示当前目录 
mkdir -p 111/222 创建多级目录  -p 参数  
rmdir -p 111/222 当删除了222后111是空目录则222也会被删除 
rmdir 仅能删除空目录  
  
**ls 常用命令   **
-a 全部   -d 目录   -l 长数据串输出(包含权限和属性)   
ls -l  的别名(alias)  ll   
蓝色是目录 白色是一般文件
 
**cp 复制文件或目录  **
-i 覆盖时询问(y/n)  -r  递归复制  -p 复制文件连权限 用户 时间 一起复制 (备份时常用)   
-a 相当于 -d -p -r   -d如果源文件是链接文件复制链接文件而非文件本身   
-s 创建软了链接(或者叫符号链接)  -l hard link(硬链接或者叫实体链接)
 
**硬链接文件和源文件一样,软链接相当于一个快捷方式 ** 
echo '1234'>1.txt  
cp 1.txt ./s_link -s //软连接  
cp 1.txt ./h_link -l //硬链接 
 
**rm 删除文件或目录   **
-i 默认会提示  -r 递归删除  -f 强制删除 
rm h* -rf  删除h开头的的文件  *为任意多个字符  
 
 
**mv 移动文件和目录或者更改名字 **
mv 1.txt 2.txt  改名 
mv 1.txt d  将1.txt移动到d目录  
mv 1.txt 2.txt d 如果有多个来源文件或目录 则最后一个为目标目录   
 
 
**basename(文件名) 和 dirname(目录名)**  
mkdir 11/22/33/44.txt -p    
basename 11/22/33/44.txt  返回 44.txt   
dirname 11/22/33/44.txt  返回 11/22/33  
 
 
**文件内容查看 ** 
cat 从文件第一行开始显示内容  
tac 从最后一行开始显示内容,反着显示 (cat反着写)   
more 一页一页的显示  more /etc/sudo.conf  
less more的功能+可以翻页   less /etc/sudo.conf 
enter或者space 翻页  
q  退出查看    
:f 查看当前行号和文件大小   
/向下搜索的内容  可以搜索关键字    ?向上搜索关键字    
pageDown pageUp Home End  
    
head 只看头几行  -n 自定义查看前多少行 
head /etc/sudo.conf -n 5 查看前5行的数据  
head /etc/sudo.conf -n -5 查看除了末尾5行的前面的所有数据  
tail 只看尾几行  
tail /etc/sudo.conf -n 5 查看后5行  
通过管道符取5到10行  
head /etc/sudo.conf -n 10 | tail -n 5   
od -t a(ASCALL码输出) 非文本文件查看  
od -t a /usr/bin/passwd   
 
**修改文件时间和创建文件   **
 
date 查看当前时间  
 
mtime (modify time) 文件内容变更后的时间  ll默认显示这个时间     
ll --time=mtime ??? 报错  ll 11.txt 就是显示的mtime    
ctime (change time)  权限等更新后的时间 
ll --time=ctime  
atime (access time ) 文件被读取后的时间 (最后访问时间)  
ll --time=atime 
 
修改文件的内容后 mtime更新  ctime也改变了   mtime不更新  
ll
echo '123'>11.txt  
ll  
 
 
修改权限后 ctime更新 mtime atime 不更新   
ll --time=ctime 11.txt    
chmod 777 11.txt  
ll --time=ctime 11.txt  
 
读取后 atime更新 ctime mtime 不更新    
11 --time=atime 11.txt  
cat 11.txt 
11 --time=atime 11.txt      
 
     
**; 分号可以分割指令,一次写多个指令执行   **
ll;touch 1.txt;ll 
 
  
**touch 修改文件时间(只能修改mtime atime,不能修改ctime)或创建新文件 **    
touch 11.txt 更新文件的所有时间 (mtime ctime atime)  
touch -d '20180615' 11.txt  
ll //mtime  
ll --time=atime 11.txt  //atime  
ll --time=ctime 11.txt  //ctime 
 
-c 修改 ctime  -m 修改 mtime  
-t -d 都是修改日期或者时间  
touch -t 201806151430 11.txt   
 
**root账户把自己主目录的11.txt复制到leyi的主目录,除了leyi其他用户不能写**  
cp ~/11.txt ~leyi     
chown leyi.leyi ~leyi/11.txt  
chmod go-x ~leyi/11.txt 或者 chmod 755 ~leyi/11.txt   
ll ~leyi 
 
**文件和目录的默认权限  umask   0022 4位数 只看后三位**  
数字代表被拿掉的权限 比如0022 代表被g拿掉了w o拿掉了w  
umask -S 可以看到  u=rwx,g=rx,o=rx  
 
**文件的特殊属性(隐藏属性)  **  
chattr 只能在传统的ext2-4文件系统上使用
chattr [-+=] 减少 增加 设置 某个属性  
chattr +i 11.txt 设置不能被改名删除修改文件,不能动的意思 (只有root账户可用)  
chattr +a  dir11  只能新增文件,不能删除修改文件 (只有root账户可用)
lsattr 显示特殊属性   -a 隐藏文件的也显示  -d 显示目录  -R 包含目录里的文件 
  
 
**查看文件类型**  
file 11.txt  ASCLL 文本  
 
**可执行程序文件名搜索**   
两次tab 可以查看有多少命令可以用(全部的可执行程序)    
which 需要查找的可执行程序名字
根据PATH定义的路径去寻找可执行文件   
which ls;which cd;  
which -a ls -a //查找全部  
 
**文件文件名搜索 **   
whereis   特定目录中寻找文件文件名  
-l 指定搜索的目录  
-b 找binary二进制格式文件  
whereis 11.txt  
  
 
**find 硬盘搜索(比较慢) **  
+n -n n 这里有点绕...
find . -mtime 0 从现在时间开始到24小时之前
-mtime n天之前的一天之内的被改动过的文件名(0 今天 1 昨天)  
-mtime +n n天不含n之前被改动的内容(大于n天之前的,+0 昨天,+1前天)  
-mtime -n n天之内包含n天在内的被改动的文件名(-1 几天的)
-user  用户名 查找某个用户的 
find ~leyi -user leyi  
-group 查找某个群组的 
find ~leyi -group leyi  
-nouser  没有用户的文件
-nogroup 没有群组存在的文件 
-name xx 查找文件名为xx的文件
find ~leyi . -name *leyi* 查找文件名包含 leyi的文件 
-size [+-] c:byte k:1kb  查找符合指定文件大小的文件 
find . -size +10k 查找大于10k的文件   

  

posted @   韭菜茄子  阅读(179)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示