find 搜索
find [起始目录] 寻找条件操作。
还有种表述方式:
find path option [-exec command {}
因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归搜索,所以我觉得这个地方说是“起始目录”是非常好的。
该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运算符 and、or、not 的含义为:
1) and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:
find . name ’tmp’ –type c -user ’inin’
该命令寻找三个给定条件都满足的所有文件。
2) or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:
find . name ’tmp’ –o –name ’mina*’
该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。
3) not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件 。例如:
findname ’tmp’
该命令查询文件名不是’tmp’的所有文件。
需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例:
find \ name ’tmp’ -type c -user ’inin’ \
find \ name ’tmp’ –xtype c -user ’inin’ \
在find中的option的内容,具体有参数:
name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、
a-z]??c'
lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、
gid n 查找属于id号为 n 的用户组的所有文件。
uid n 查找属于id号为 n 的用户的所有文件。
group ’字串’ 查找属于用户组名为所给字串的所有的文件。
user ’字串’ 查找属于用户名为所给字串的所有的文件。
empty 查找大小为 0的目录或文件。
path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?
perm 权限查找具有指定权限的文件和目录,权限的表示可以如711,644。
size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表节的块。
type x 查找类型为 x 的文件,x 为下列字符之一:f、b、c、d、s、p
以时间为条件查找。
-amin n 查找n分钟以前被访问过的所有文件。
-atime n 查找n天以前被访问过的所有文件。
-mmin n 查找n分钟以前文件内容被修改过的所有文件。
-mtime n 查找n天以前文件内容被修改过的所有文件。
print:将搜索结果输出到标准输出。
例子:在root以及子目录查找,greek用户的,文件类型为普通文件的,3天之前的名为的文件,并将结果输出,find命令如下:
find /root -name ""type f -mtime +3 -user greek -prune /root/bin -print
当然在这其中,-print是一个默认选项,我们不必刻意去配置它。
exec选项:
exec:对搜索的结果执行指定的shell命令。注意格式要正确:"-exec 命令 {}
在}和\之间一定要有空格才行;{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \结束。
例子:对上述例子搜索出来的文件进行删除操作,命令如下:
find / name ""type f -mtime +3 -user greek -prune /root/bin -exec rm {}
find命令指令实例:
find . name ‘main*’ exec more {}
查找当前目录中所有以main开头的文件,并显示这些文件的内容。
find . name -o -name ‘*o’\)atime +7 -exec rm {}
删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。
命令中的“.”表示当前目录,此时 find 将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。
“\和 “\表示括号(),其中的 “\称为转义符。之所以这样写是由于对 shell 而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。
“-name 是指要查找名为的文件;
“-name ‘*o’” 是指要查找所有名字以 .o 结尾的文件。
这两个 -name 之间的 -o 表示逻辑或(or),即查找名字为或名字以 .o结尾的文件。
find命令在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件 -atime +7),若是,则对该文件执行命令 rm(-exec rm {}
其中 {}代表当前查到的符合条件的文件名,\;则是语法所要求的。
1. find . type l -exec rm {}
2. find . user 'tom' -print
3. find . name '*c' -size +20c -print
4. find . atime 10 -print 10天前访问过的文件。
5. find . atime -10 -print 10天内访问过的文件。
6. find / size -500k -print 小于500k
7. find /home -perm 640 查找/home下权限为640的文件。
8. find . name '*doc' -mtime +5 -ok rm {}
9. find . type l -exec ls -l {}
10. find . name '[a-z][a-z][0-9][0-9].doc' -print
11. find . name '*txt'
启动运行级别:
0 :停机。
1 :单用户模式。
2 :多用户模式,但是没有nfs
3 :多用户模式,标准的运行级别。
4:保留,没定义
5:x window图形界面模式。
6:重新启动。
init 0 //切换运行级别。
startx //启**形化环境。
终端与虚拟控制台最大的区别:终端可以启动任何x程序。
root@localhost ~]# who
root :02013-09-06 18:36
root pts/1 2013-09-06 19:11 (:0.0)
root pts/2 2013-09-06 19:12 (:0.0)
who命令查看当前登录到系统中的用户情况。
虚拟控制台:(alt+ctrl+f1~f6)
从虚拟控制台切换回到图形环境:(alt+ctrl+f7)
注销用户:logout或exit
关机:init 0
shutdown -t sec ;代表sec秒后关机。
shutdown -r ;重新启动。
shutdown -h ;停机。
reboot ;重新启动。
halt ;停机。
命令提示符:
[root@localhost ~]#
当前用户当前目录。
用户的家目录: ~
root: /root ;
root根用户的家目录。
xu: /home/xu ;普通用户的家目录。
pwd :打印当前目录位置。
cd 目标位置 ;切换目录。
ls ;列目录。
mkdir ; mkdir -p a/b/c/d/e
rmdir ;rmdir -p a/b/c/d/e
touch
# touch -t 1205081830
cp ;cp -f ; cp -r
rm ;rm -f
cat 文件名 //查看文本文件内容。
more 文件名 //分页查看文本文件内容,只能往后翻页。
less 文件名 //分页查看文本文件内容,可以往前往后翻页。
head -n 文件名。
tail -n 文件名。
uniq 文件名 //连续重复的行只显示一次。
练习:1.熟悉图形环境操作(设置桌面背景;添加用户;把关机按钮放到控制栏上;工作区之间的操作)
2.用不同用户不同方式登录,查看家目录信息,切换当前目录等操作;
3.练习相关命令;
shell 命令解释器;默认的是:/bin/bash
它还是一种程序设计语言---可用于编写shell脚本。
系统帮助:mkdir --help
man mkdir
info mkdir
通配符:匹配任意个字符。
匹配任意单个字符。
linux实验笔记
linux高级实验笔记。实验一 配置apache,php,mysql集成的。1 用yum install php 安装php 用yum install mysql 安装mysql 过程略 2 在 etc httpd 配置文件最后一行加上最后一行。3 再切换到 var www html 目录下新建文件...
Linux编程笔记
资源。include 线程 lpthread include include include include include include include include include include include include 2010年9月16日。复习。2010年9月17日上午。静态库文...
Linux文件管理笔记
lsa 列出所有文件,包括以。开头的隐藏文件。表示当前目录。表示当前目录的上级目录 父目录 a 除当前目录和上级目录的其他所有目录。l 长格式 查看文件详细信息 文件类型 普通文件 f d 目录文件。b 块设备文件 block c 字符设备文件 character l 符号链接文件 symbolix...