目前已经总结了,文件操作命令,目录操作命令,查看目录下的文件及目录结构,本节我来总结一下Linux另外两个重要的命令rm删除命令和find查找命令。
rm命令是Linux系统中常用的命令,该命令的功能为删除一个目中的文件或多个文件或目录,对于链接文件,只是删除了链接,对原始文件没有影响,rm命令十分危险,新手要特别当心。
rm [选项] 文件...
-i 每个删除操作完成前都有确认提示
-I 删除超过 3 个文件时或递归删除时仅提示一次确认
-d 仅删除空目录
-v 显示当前操作完成时的详细情况
-f 强制删除,并没有提示
-r 递归删除目录下的所有文件和目录
删除目录,无参数时默认有提示
[root@ERICSSON usr]# ls
bin games lib libexec sbin src tmp
etc include lib64 local share TestUsr
[root@ERICSSON usr]# rm -r TestUsr/
rm: remove directory ‘TestUsr/’? y
[root@ERICSSON usr]#
2.强制删除,无任何提示
[root@ERICSSON /]#
[root@ERICSSON /]# cd SherwinTest/
[root@ERICSSON SherwinTest]# ls
3file.txt 5file.txt 7file.txt 9file.txt typescript
4file.txt 6file.txt 8file.txt Test
[root@ERICSSON SherwinTest]# rm -f 3file.txt
[root@ERICSSON SherwinTest]# ls
4file.txt 6file.txt 8file.txt Test
5file.txt 7file.txt 9file.txt typescript
运用I参数,删除超过三个以上或者递归删除时有提示
[root@ERICSSON SherwinTest]#
[root@ERICSSON SherwinTest]# ls
4file.txt 6file.txt 8file.txt Test
5file.txt 7file.txt 9file.txt typescript
[root@ERICSSON SherwinTest]#
[root@ERICSSON SherwinTest]# rm -I 4file.txt 5file.txt
[root@ERICSSON SherwinTest]# ls
6file.txt 7file.txt 8file.txt 9file.txt Test typescript
[root@ERICSSON SherwinTest]# rm -I 6file.txt 7file.txt 8file.txt 9file.txt
rm: remove 4 arguments? y
[root@ERICSSON SherwinTest]# ls
Test typescript
[root@ERICSSON SherwinTest]#
递归删除目录下的所有文件和目录
[root@ERICSSON /]# rm -r SherwinTest/
rm: descend into directory ‘SherwinTest/’? y
rm: remove regular empty file ‘SherwinTest/typescript’? y
rm: remove directory ‘SherwinTest/Test’? y
rm: remove regular empty file ‘SherwinTest/test1.log’? y
rm: remove regular empty file ‘SherwinTest/test2.log’? y
rm: remove regular empty file ‘SherwinTest/test3.log’? y
rm: remove regular empty file ‘SherwinTest/test4.log’? y
rm: remove regular empty file ‘SherwinTest/test5.log’? y
rm: remove regular empty file ‘SherwinTest/test6.log’? y
rm: remove regular empty file ‘SherwinTest/test7.log’? y
rm: remove regular empty file ‘SherwinTest/test8.log’? y
rm: remove regular empty file ‘SherwinTest/test9.log’? y
rm: remove regular empty file ‘SherwinTest/test10.log’? y
rm: remove directory ‘SherwinTest/’? y
[root@ERICSSON /]#
note:有提示
find命令是linux中最有用的命令之一。find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。
find [pathname] -options [-print -exec -ok ...]
-name 按照文件名查找文件
-perm 按照文件的权限查找文件
-user 按照文件属主来查找文件
-grup 按照文件所属组来查找文件
-mtime 按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
note:另外请注意下面三个的区别:
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
查找在指定范围内修改过的文件
1. 查找最后N分钟访问的文件
[root@ERICSSON ~]# find . -atime -1
.
./.bash_profile
./.bashrc
./.bash_history
./.pki
./.pki/nssdb
./.viminfo
[root@ERICSSON ~]#
2. 查找系统N分钟被修改文件数据的文件
[root@ERICSSON ~]# find . -mtime -1
.
./.viminfo
[root@ERICSSON ~]#
note:其他参数大家可以自行进行验证。
根据文件名字查找
[root@ERICSSON SherwinTest]# ls
3file.txt 5file.txt 7file.txt 9file.txt typescript
4file.txt 6file.txt 8file.txt Test
[root@ERICSSON SherwinTest]# find -name "3file.txt"
./3file.txt
[root@ERICSSON SherwinTest]#
根据类型查找
[root@ERICSSON SherwinTest]#
[root@ERICSSON SherwinTest]# ls
3file.txt 5file.txt 7file.txt 9file.txt typescript
4file.txt 6file.txt 8file.txt Test
[root@ERICSSON SherwinTest]# find . -type f -name "*file.txt"
./4file.txt
./5file.txt
./6file.txt
./7file.txt
./8file.txt
./9file.txt
./3file.txt
[root@ERICSSON SherwinTest]#
note: find "." 这个点表示当前目录
按照目录和权限查找
[root@ERICSSON test]# find /opt/soft/test/ -perm 777
/opt/soft/test/log_link.log
/opt/soft/test/test4
/opt/soft/test/test5/test3
/opt/soft/test/test3
查找当前所有目录并排序
[root@ERICSSON SherwinTest]# ls
3file.txt 5file.txt 7file.txt 9file.txt typescript
4file.txt 6file.txt 8file.txt Test
[root@ERICSSON SherwinTest]# find . -type f | sort
./3file.txt
./4file.txt
./5file.txt
./6file.txt
./7file.txt
./8file.txt
./9file.txt
./typescript
[root@ERICSSON SherwinTest]#
按照文件大小查找
[root@ERICSSON ~]# find . -size +1000c -print
./anaconda-ks.cfg
./.bash_history
./.viminfo
[root@ERICSSON ~]#
note:查找当前目录大于1K的文件
原文:https://blog.51cto.com/12002695/2380447