Linux文件和目录管理
本篇主要讲述:
1 目录和文件
2 目录和文件的操作(复制,删除,移动)
3 查看文件内容的命令
4 搜寻命令(which,whereis,locate,find);
5 文件内容的过滤grep;
1、目录和文件
1.1 查看及切换目录
查看当前目录:pwd(print working directory)
切换工作目录:cd(change directory)
.代表当前目录
..代表上级目录
1.2 使用通配符查找
针对不确定的文档名称,以特殊字符表示
(1)*:任意多个任意字符
[ /]# ls /etc/*tab
[ /]# ls /etc/*.conf
[ /]# ls /boot/vm*
(2)?:单个字符
[ /]# ls /dev/tty?
[ /]# ls /dev/tty??
[ /]# ls /dev/tty???
(3)[a-z]:多个字符或连续范围中的一个,若无则忽略
[ /]# ls /dev/tty[3-8]
(4){a,min,xy}:多组不同的字符串,全匹配
[ /]# ls /dev/tty{1,3,5,7,9,S0,30,haha}
[ /]# ls /dev/tty{10,20,30,S1}
[ /]# ls /dev/tty{S2,S3}
请列出 /dev/tty20至/dev/tty30
[ /]# ls /dev/tty{2[0-9],30}
1.3 文件/文件系统的详细信息显示
stat 命令显示包括:inode,atime,ctime,mtime
[ home]# stat passwd File: ‘passwd’ Size: 795 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 19087983 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:home_root_t:s0 Access: 2020-05-10 15:23:17.576572669 -0400 Modify: 2020-05-10 15:23:17.576572669 -0400 Change: 2020-05-10 15:23:17.579572669 -0400 Birth: -
2 目录及文件操作
2.1 创建目录(文件夹)
mkdir(make directory)
[ ~]# mkdir -p /vod/movie/cartoon #-p表示连父目录一起创建
删除空文件夹:rmdir
2.2 复制cp命令
格式:cp [选项]... 原文件... 目标路径
常用命令选项
-a: 相当于 -dr
-d: 若来源文件为链接文件的属性,复制链接文件属性而并非文件本身;
-f:为强制(force) 的意思,若目标文件已经存在且无法打开,则移除后再尝试一次;
-i:若目标文件(destination) 已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式链接(hard link) 的链接文件创建,而非复制文件本身;
-p:连同文件的属性(权限、用户、时间)一起复制过去而非使用默认属性(备份常用) ;
-r:递回持续复制,用于目录的复制行为;(常用)
-s:复制成为符号链接文件 (symbolic link) ,亦即“捷径”文件;
-u:update
[ /]# cp /etc/passwd /opt/ [ /]# cp /boot/vm* /opt/ [ /]# cp -r /boot/ /opt/ [ /]# cp -r /etc/shadow /mnt/ /opt/ [ /]# \cp -r /boot/ /opt/ #覆盖文件时,如果目标位置已经存在该文件,系统会询问我们是否覆盖,需要输入y来确认,加入\存在时就不用询问直接操作
2.3 删除命令
rm — Remove
格式:rm [选项]... 文件或目录...
常用命令选项
-r、-f:递归删除(含目录)、强制删除
-i 删除前询问
[ /]# touch /opt/1.txt [ /]# mkdir /opt/abc [ /]# ls /opt/ 1.txt abc [ /]# rm -rf /opt/* [ /]# ls /opt/
2.4 mv 移动/改名
mv — Move
– 格式: mv [选项]... 原文件... 目标路径
[ /]# mkdir /opt/nsd01 [ /]# touch /opt/1.txt [ /]# ls /opt/ 1.txt nsd01 [ /]# mv /opt/1.txt /opt/nsd01 [ /]# ls /opt/ #移动后/opt下不存在1.txt文件 nsd01 [ /]# ls /opt/nsd01 1.txt #重命名:路径不变的移动 [ /]# mv /opt/test /opt/haha #/test另起文件名/haha
2.5 创建空文件
touch命令
2.6 取得路径的文件与目录名称
basename与dirname
[ etc]# basename /usr/local/nginx/conf/nginx.conf nginx.conf [ etc]# dirname /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf
3 文件内容的查阅
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取文件内容!
4 搜寻命令
which命令: 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
whereis命令:该指令只能用于查找二进制文件、源代码文件和man手册页
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库
4.1 which 查找指令的可执行文件路径
which [-a] 命令
-a 查找所有PATH路径下的
[ etc]# which ls alias ls=‘ls --color=auto‘ /usr/bin/ls [ etc]# which dirname /usr/bin/dirname [ etc]# which find /usr/bin/find
4.2 whereis 特定目录下寻找文件名
该指令只能用于查找二进制文件、源代码文件和man手册页。
复制/etc/passwd 到/home下
passwd文件在/etc/,/home目录下都存在,但是使用该命令时,结果如下:
[ /]# whereis passwd passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
参数:
- -b 只查找二进制文件。
- -B<目录> 只在设置的目录下查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M<目录> 只在设置的目录下查找说明文件。
- -s 只查找原始代码文件。
- -S<目录> 只在设置的目录下查找原始代码文件。
- -u 查找不包含指定类型的文件。
4.3 locate
该命令在系统中不存在时
yum -y install mlocate
然后更新数据库:
updatedb
[ /]# locate passwd /etc/passwd /etc/passwd- /etc/pam.d/passwd /etc/security/opasswd /home/passwd
4.4 find
常见用法:find [目录] [条件1]
(1)常用条件表示:
-type 类型(f 文件、d 目录、l 快捷方式)
-name "文档名称"
-size +|-文件大小(k、M、G)
-user 用户名
[ ~]# find /etc/ -name "*.conf" [ ~]# find /etc/ -name "passwd" [ ~]# find /boot -type d [ ~]# find /boot -type l [ ~]# find /boot -type f [ ~]# find /root/ -name "nsd*" [ ~]# find /root/ -name "nsd*" -type f [ ~]# find /root/ -name "nsd*" -type d [ ~]# find /boot/ -size +20M #查找20M以上的文件 [ ~]# ls -lh /boot/initramfs-* [ ~]# find /boot/ -size -20M [ ~]# useradd lisi [ ~]# useradd zhangsan [ ~]# ls -l /home/ [ ~]# find /home -user zhangsan [ ~]# find /home -user lisi [ ~]# find / -user lisi
(2)与时间有关的选项:共有 -atime, -ctime 与 -mtime
atime:access time访问时间,文件最后被读取过的时间
ctime:change time变更时间,文件最后被变更的时间
mtime:modify time修改时间,文件最后被修改的时间
以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的“一天之内”被更动过内容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身) 被更动过内容的文件文件名;
-mtime -n :列出在 n 天之内(含 n 天本身) 被更动过内容的文件文件名。
-newer file :file 为一个存在的文件,列出比 file 还要新的文件文件名
(3)find结果处理
# rm -rf /opt/* # find /boot/ -size +10M # find /boot/ -size +10M -exec cp {} /opt \; #找到的结果复制到/opt下 # ls /opt/ # mkdir /root/findfiles # find / -user lisi -type f -exec cp {} /root/findfiles \; # ls -A /root/findfiles/
5 文件内容的过滤grep
根据字符串模式提取文本行
grep [选项] ‘匹配字符串‘ 文本文件...
常用命令选项
-v,取反匹配
-i,忽略大小写
[ ~]# grep ‘root‘ /etc/passwd [ ~]# grep -v ‘root‘ /etc/passwd #取反 [ ~]# grep ‘ROOT‘ /etc/passwd [ ~]# grep -i ‘ROOT‘ /etc/passwd #忽略大小写 [ ~]# grep ‘seismic‘ /usr/share/dict/words # grep ‘seismic‘ /usr/share/dict/words > /root/wordlist #找出来相匹配的并导出 # cat /root/wordlist^word 以字符串word开头 word$ 以字符串word结尾 [ ~]# grep ‘^root‘ /etc/passwd [ ~]# grep ‘root$‘ /etc/passwd [ ~]# grep ‘bash$‘ /etc/passwd 匹配空行 [ ~]# grep -v ‘^$‘ /etc/default/useradd
相关推荐
tianhuak 2020-11-24
86276537 2020-11-19
大牛牛 2020-10-30
flycappuccino 2020-09-27
卢从利 2020-10-10
无忧老猪 2020-10-09
学峰的学习笔记 2020-10-05
85216033 2020-09-16
兄dei努力赚钱吧 2020-09-06
89334799 2020-08-12
ruanhongbiao 2020-08-16
邓博学习笔记 2020-08-03
ningningmingming 2020-07-28
zhongzhiwei 2020-07-27
Jiajinjin 2020-07-27
manimnchn 2020-07-26
xiyoukeke 2020-07-19
ooouuuooouuu 2020-07-19
Proudoffaith 2020-07-18