Linux-第五天-文件和目录管理

9. 文件和目录管理

9.1 创建文件(touch)

[zy@localhost Desktop]$ touch zy
[zy@localhost Desktop]$ ls
zy
[zy@localhost Desktop]$ touch zy1 zy2
[zy@localhost Desktop]$ ls
zy  zy1  zy2
[zy@localhost Desktop]$ 

# Linux - 通配符基础
    * 匹配任意(通常用于删除)
    {} 匹配指定内容
 {1..5}  1 2 3 4 5
[zy@localhost Desktop]$ touch zy{1..5}
[zy@localhost Desktop]$ ls
zy1  zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ touch zy*
[zy@localhost Desktop]$ ls
zy1  zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ touch fa*
[zy@localhost Desktop]$ ls
fa*  zy1  zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ 

9.2 文件删除(rm)

remove -  rm(默认只能删除文件,不能删除文件夹)

# -i 删除前询问
[zy@localhost Desktop]$ rm fa*
[zy@localhost Desktop]$ ls
zy1  zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ rm -i zy1
rm: remove regular empty file ‘zy1’? y
[zy@localhost Desktop]$ ls
zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ 

# -r 删除目录
[zy@localhost ~]$ rm Templates/
rm: cannot remove ‘Templates’: Is a directory
[zy@localhost ~]$ rm -r Templates/
[zy@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Videos
[zy@localhost ~]$ 

# -f 强制删除(忽略告警)   谨慎使用
[zy@localhost Desktop]$ ls
aa1  aa2  aa3  aa4  aa5  zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ rm -rf aa*
[zy@localhost Desktop]$ ls
zy2  zy3  zy4  zy5
[zy@localhost Desktop]$ rm -rf zy{2..5}
[zy@localhost Desktop]$ ls
[zy@localhost Desktop]$ 

9.3 文件复制(cp)

copy       cp
# ./ 复制到当前文件夹
[zy@localhost Desktop]$ cp /etc/hosts ./
[zy@localhost Desktop]$ ls
hosts
[zy@localhost Desktop]$ 

# -i 询问是否覆盖
[zy@localhost Desktop]$ cp -i /etc/hosts ./
cp: overwrite ‘./hosts’? y
[zy@localhost Desktop]$ ls
hosts
[zy@localhost Desktop]$

# -a 复制目录,保留原始文件属性信息
[zy@localhost Desktop]$ ls -lh
-rw-r--r--.  1 zy zy  158 Jan 30 01:43 hosts
[zy@localhost Desktop]$ cp -ia /etc/hosts ./
cp: overwrite ‘./hosts’? y
[zy@localhost Desktop]$ ls -lh
-rw-r--r--. 1 zy zy 158 Jun  7  2013 hosts
[zy@localhost Desktop]$ 

9.4 文件剪切/移动/重命名

move  - mv
# 剪切/移动
[zy@localhost Desktop]$ ls
hosts
[zy@localhost Desktop]$ mv hosts ../
[zy@localhost Desktop]$ ls
[zy@localhost Desktop]$ cd ./../
[zy@localhost ~]$ ls
Desktop  Documents  Downloads  hosts  Music  Pictures  Public  Videos

# 重命名
[zy@localhost Desktop]$ ls
hosts
[zy@localhost Desktop]$ mv hosts hostzy
[zy@localhost Desktop]$ ls
hostzy
[zy@localhost Desktop]$ 

9.5 文件查看

# 1. 一次性显示完整行(cat/tac)    适合-小文件
[zy@localhost ~]$ cat ./hosts   # 从头开始
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[zy@localhost ~]$ 
[zy@localhost ~]$ tac ./hosts   # 从尾开始
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
[zy@localhost ~]$    

# 2. 显示部分行(head/tail)  默认看10行       适合-指定行数
[zy@localhost ~]$ head /etc/passwd -n 5     # 从头开始
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[zy@localhost ~]$ 
[zy@localhost ~]$ tail /etc/passwd -n 5     # 从尾开始
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zy:x:1000:1000:zy:/home/zy:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[zy@localhost ~]$ 

# 3. 翻阅查看(more/less)        # 适合大文件
[zy@localhost ~]$ more /etc/passwd  # 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:994:992::/var/lib/chrony:/sbin/nologin
--More--(53%)               # 只能向下翻,使用空格继续向下翻       q退出


[zy@localhost ~]$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
saslauth:x:995:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:994:992::/var/lib/chrony:/sbin/nologin
:   # 只能上下翻阅     q退出

$# 4. #查看统计(wc)
[zy@localhost ~]$ cat ./hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# -c 统计字节数
[zy@localhost ~]$ wc -c hosts
158 hosts
[zy@localhost ~]$ 

# -l 显示行数
[zy@localhost ~]$ wc -l hosts
2 hosts
[zy@localhost ~]$ 

# -w 统计单词数(空格不算)
[zy@localhost ~]$ wc -w hosts
10 hosts
[zy@localhost ~]$ 

# -L 统计最长行的字节数
[zy@localhost ~]$ wc -L hosts
78 hosts
[zy@localhost ~]$ 

9.6 创建/删除/查看目录

$# 1. mkdir(创建目录)
[zy@localhost Desktop]$ ls
hostzy
[zy@localhost Desktop]$ mkdir zy
[zy@localhost Desktop]$ ls
hostzy  zy
[zy@localhost Desktop]$ 

# 递归创建(-p)
[zy@localhost Desktop]$ 
[zy@localhost Desktop]$ mkdir -p zy1/zy2
[zy@localhost Desktop]$ ls
zy1
[zy@localhost Desktop]$ ls ./zy1
zy2
[zy@localhost Desktop]$ 



$# 2. rmdir(删除目录)
[zy@localhost Desktop]$ ls
hostzy
[zy@localhost Desktop]$ rmdir hostzy
[zy@localhost Desktop]$ ls
[zy@localhost Desktop]$ 

# 递归删除(-p)  只能删除空目录,即里面没有文件
[zy@localhost Desktop]$ ls
zy1
[zy@localhost Desktop]$ ls ./zy1
zy2   # 里面没有文件
[zy@localhost Desktop]$ rmdir -p zy1/zy2
[zy@localhost Desktop]$ ls
[zy@localhost Desktop]$ 



$# 3. 查看目录本身的信息(-d)
[zy@localhost Desktop]$ ls
zy
[zy@localhost Desktop]$ ls -lh zy
tot                                                                                                                                                                                                                                                                                                             al 0
-rw-rw-r--. 1 zy zy 0 Jan 30 02:37 zy1
-rw-rw-r--. 1 zy zy 0 Jan 30 02:37 zy2
-rw-rw-r--. 1 zy zy 0 Jan 30 02:37 zy3
-rw-rw-r--. 1 zy zy 0 Jan 30 02:37 zy4
-rw-rw-r--. 1 zy zy 0 Jan 30 02:37 zy5
[zy@localhost Desktop]$ ls -lhd zy
drwxrwxr-x. 2 zy zy 61 Jan 30 02:37 zy
[zy@localhost Desktop]$ 

9.7 文件查找

9.7.1 find
$# 1.find [文件路径] [参数]
[zy@localhost ~]$ touch zy.txt
[zy@localhost ~]$ touch zt.txt
[zy@localhost ~]$ touch zy.mp3
[zy@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Videos  zt.txt  zy.mp3  zy.txt
[zy@localhost ~]$ 
[zy@localhost ~]$ su
Password: 
[root@localhost zy]# touch 1234.txt
[root@localhost zy]# exit
exit
[zy@localhost ~]$ 
#************************************************************************************


# -name(匹配名称)
[zy@localhost ~]$ find ./ -name zy.txt
./zy.txt
[zy@localhost ~]$ 

# “*.txt”           "zy.*" 
[zy@localhost ~]$ find ./ -name "*.txt"
./.cache/tracker/db-version.txt
./.cache/tracker/db-locale.txt
./.cache/tracker/parser-sha1.txt
./.cache/tracker/locale-for-miner-user-guides.txt
./.cache/tracker/locale-for-miner-apps.txt
./.cache/tracker/last-crawl.txt
./.cache/tracker/first-index.txt
./zy.txt
./zt.txt
./1234.txt
[zy@localhost ~]$ 

# -user(匹配所有者)
[root@localhost zy]# find . -user zy -name "*.mp3"
./zy.mp3
[root@localhost zy]# 

# -group(匹配所有组)
[root@localhost zy]# find ./ -group root -name "*.txt"
./1234.txt
[root@localhost zy]# 

# -nouser(匹配无所有者的文件)   -nogroup(匹配无所有组的文件)
[root@localhost zy]# find ./ -nouser
[root@localhost zy]# 
[root@localhost zy]# find ./ -nogroup
[root@localhost zy]# 



#************************************************************************************
-atime - +    匹配访问文件的时间         -n指n天以内,+n指n天以前
-mtime - +    匹配修改文件内容的时间      -n指n天以内,+n指n天以前
-ctime - +    匹配修改文件属性的时间      -n指n天以内,+n指n天以前

-atime -5  # 5天之内被访问文件的                     
-mtime -5  # 5天之内被修改过内容的                  
-ctime -5  # 5天之内被修改过属性的                 





[root@localhost zy]# find ./ -atime -1   一天之内被访问过的文件
[root@localhost zy]# find ./ -mtime -1   一天之内被修改过文件内容的文件
[root@localhost zy]# find ./ -atime -1   一天之内被修改过文件属性的文件

# 3天之内被修改过文件内容,2天之内修改过文件属性,1天之内被访问过的,和txt相关的文件
[root@localhost zy]# find ./ -mtime -3 -ctime -2 -atime -1 -name "*.txt"
./zy.txt
./zt.txt
./1234.txt
[root@localhost zy]# 

#  -type(文件类型)
b 块设备
d 目录
c 字符设备
p 管道
l 链接文件
f 普通文件

[root@localhost zy]# find ./ -type f
./.bash_logout
./.bash_profile
./.Xauthority
./zy.txt
./zy.mp3
./1234.txt
[root@localhost zy]# 


# -size(文件大小)
+50k 50k以上的文件
-50k 50k以内的文件
50   等于50k的文件

[root@localhost zy]# find ./ -size +1k
./
./.cache/imsettings/log.bak
./.cache/event-sound-cache.tdb.localhost.localdomain.x86_64-redhat-linux-gnu
./.local/share/gvfs-metadata/root-5546d320.log
./.bash_history
[root@localhost zy]# 

9.7.2 locate
$# 2. locate
[root@localhost zy]# locate zy.txt
/home/zy/zy.txt
[root@localhost zy]# cd /
[root@localhost /]# locate zy.txt
/home/zy/zy.txt
[root@localhost /]# 

# -c 查询指定文件的数目
[root@localhost zy]# locate -c zy.txt
1
[root@localhost zy]# locate -c "*.txt"
525
[root@localhost zy]# 

# -n 显示前n个文件
[zy@localhost ~]$ locate -n 10 "*.txt"
/etc/brltty/brl-ba-all.txt
/etc/brltty/brl-bd-all.txt
/etc/brltty/brl-bl-18.txt
/etc/brltty/brl-bl-40_m20_m40.txt
/etc/brltty/brl-ec-all.txt
/etc/brltty/brl-ec-spanish.txt
/etc/brltty/brl-eu-all.txt
/etc/brltty/brl-lb-all.txt
/etc/brltty/brl-lt-all.txt
/etc/brltty/brl-mb-all.txt
[zy@localhost ~]$ 

# -i 忽略大小写
[zy@localhost ~]$ locate -i zy.TXT
/home/zy/zy.txt
[zy@localhost ~]$ 

# locate和find的区别
find是去硬盘找文件,locate只在本地locate数据库中查找文件索引
本地locate数据库需要手动更新 -updatedb
[zy@localhost ~]$ touch zy.html
[zy@localhost ~]$ locate zy.html # 没找到
[zy@localhost ~]$
[zy@localhost ~]$ ls
1234.txt  Documents  Music     Public  zt.txt   zy.mp3
Desktop   Downloads  Pictures  Videos  zy.html  zy.txt
[zy@localhost ~]$ find zy.html
zy.html
[zy@localhost ~]$ 

[root@localhost zy]# locate -S
Database /var/lib/mlocate/mlocate.db:
	9,682 directories
	122,725 files 
	5,921,091 bytes in file names
	2,719,820 bytes used to store database
[root@localhost zy]# 
[root@localhost zy]# touch zy.c
[root@localhost zy]# updatedb     # 手动更新
[root@localhost zy]# locate -S
Database /var/lib/mlocate/mlocate.db:
	9,682 directories
	122,726 files # 更新了一个文件
	5,921,104 bytes in file names
	2,719,826 bytes use


# locate 需要指定路径进行查找时,建议使用绝对路径,否则可能出错
[zy@localhost ~]$ 
[zy@localhost ~]$ locate ./ "zy.*"  # 相对路径
[zy@localhost ~]$ 
[zy@localhost ~]$ locate /home/zy/  # 不可以查找具体的
/home/zy/.ICEauthority
/home/zy/.Xauthority
/home/zy/.mozilla/extensions
/home/zy/.mozilla/plugins
[zy@localhost ~]$ 
[zy@localhost ~]$ locate "/home/zy/zy.*"   # 绝对路径
/home/zy/zy.c
/home/zy/zy.cpp
/home/zy/zy.html
/home/zy/zy.mp3
/home/zy/zy.txt
[zy@localhost ~]$ 

[zy@localhost ~]$ locate "/home/zy/Desktop/"
/home/zy/Desktop/zy.html
/home/zy/Desktop/zy1.mps
/home/zy/Desktop/zy2.mps
[zy@localhost ~]$ 

9.7.3 grep
$# 3. grep(文件内容查找)
# 只查找 /etc/passwd 下 和 ”zy" 有关的信息
[zy@localhost ~]$ grep zy /etc/passwd
zy:x:1000:1000:zy:/home/zy:/bin/bash
[zy@localhost ~]$ 
[zy@localhost ~]$ grep "zy" /etc/passwd   # 建议加上引号 ""
zy:x:1000:1000:zy:/home/zy:/bin/bash
[zy@localhost ~]$ 

# -c(仅显示找到的次数)
[zy@localhost ~]$ grep -c "var" /etc/passwd
17
[zy@localhost ~]$ 

# -i(忽略大小写)
[zy@localhost ~]$ grep -i "Zy" /etc/passwd
zy:x:1000:1000:zy:/home/zy:/bin/bash
[zy@localhost ~]$ 

# -n(显示行号)
[zy@localhost ~]$ grep -n "zy" /etc/passwd
41:zy:x:1000:1000:zy:/home/zy:/bin/bash
[zy@localhost ~]$ 

# -v(反选),仅列出没有“关键词”的行
[zy@localhost ~]$ grep -v "zy" /etc/passwd -n
37:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
38:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
39:ntp:x:38:38::/etc/ntp:/sbin/nologin
40:tcpdump:x:72:72::/:/sbin/nologin
42:apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[zy@localhost ~]$ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值