第一章实验一
1.1信息概述
1.2Linux文件和目录基本操作
1.3文件目录权限管理
1.4文件搜索
1.概述
文件搜索的常用命令有:which、whereis、find、locate。
2.whichwhich指令会在环境变量$PATH设置的目录里查找符合条件的文件
语法:
which 文件
示例:
$ which ls /bin/ls3.whereis
该指令会在特定目录中查找符合条件的文件。这些文件应属于源文件、二进制文件,或是man文件。
语法:
whereis [-bfmsu][-B <目录>…][-M <目录>…][-S <目录>…] 文件
选项与参数:
-b 只查找二进制文件
-B<目录> 只在指定目录下查找二进制文件
-f 不显示文件名前的路径名称
-m 只查找man文件。
-M<目录> 只在指定目录下查找man文件
-s 只查找源代码文件
-S<目录> 只在指定目录下查找原始代码文件
-u 查找不包含指定类型的文件
示例:
$ whereis -b passwd passwd: /usr/bin/passwd /etc/passwd4.locate
locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找符合查找条件的文档或目录
语法:
locate [-d ][–help][–version] 文件
选项与参数:
-d或–database= 用来指定locate指令使用的数 据库。locate指令默认数据库位于/var/lib/slocate目录里,文档名为slocate.db。
–help 查看帮助
–version 显示版本信息
示例:
$ locate longfile.txt /home/jovyan/compress/dir/longfile.txt /home/jovyan/compress/longfile.txt /home/jovyan/dirandfile/longfile.txt /home/jovyan/longfile.txt /home/jovyan/text-grep/longfile.txt /home/jovyan/text-sed/longfile.txt /home/jovyan/text-vi/longfile.txt5.
ind命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:
find 查找目录 [-option] 查找内容
选项与参数:
-print:列出结果,使用find命令,默认执行
-mtime n:文件修改时间,对文件数据的最近一次修改是在 n*24 小时之前
-mmin n:对文件数据的最近一次修改是在 n 分钟之前
-ctime n:文件状修改时间,对文件状态的最近一次修改是在 n*24 小时之前。
-cmin n:件状态修改,对文件状态的最近一次修改是在 n 分钟之前。
-atime n:访问时间,对文件的最近一次访问是在 n*24 小时之前。
-amin n:最后访问时间,对文件的最近一次访问是在 n 分钟之前。
-mtime : 指定时间曾被改动过的文件,意思是文件內容被更改过
-ctime : 指定时间曾被更改过的文件,意思是文件权限被更改过
-atime : 指定时间曾被存取过的文件,意思是文件被读取过
-newer file:file为已存在的文件,意为列出比file时间更新的文件
-type:指定文件类型
-uid n:指定文件属主uid
-gid n:指定文件属组gid
-user:指定文件属主名
-group :指定文件属组名
-nouser: 查找系统中没有属主的文件
-nogroup:查找系统中没有属组的文件
-name:查找文件名相匹配的文件
-size:查找匹配大小的文件
-exec COMMAND:查找后使用额外命令处理查找结果
-perm +mode | –mode:+为囊括所有元素,-为包含任一元素
示例:
#将目前目录及其子目录下文件名后缀是txt的文件列出来
$ find . -name "*.txt" ./file.txt ./longfile.txt ./text-grep/file.txt ./text-grep/longfile.txt ............省略...........
#将当前目录及其子目录下所有目录列出
$ find . -type d . ./.ipython ./.ipython/extensions ./.ipython/profile_default ............省略...........
#查找当前目录下20分钟内被访问过的文件或目录:
$ find . -amin -20 . ./.local/share/jupyter/nbsignatures.db ./user ./linux8.ipynb
#查找当前目录下大于10k的普通文件,并列出其详细信息
$ find . -size +10k -type f ./.ipython/profile_default/history.sqlite ./privilege_1.png ./linux5_5.png ./linux5_2.png ............省略...........
实验任务
新建文件夹search,将file.txt、file2.txt和longfile.txt复制其中,并新建文件夹adir、dir1和dir2和文件dir.txt,并复制longfile.txt分别到dir1和dir2中(20分)。在命令后添加"> 文件名"将内容输出到文件中。
mkdir search cp file.txt file2.txt longfile.txt search mkdir adir dir1 dir2 touch dir.txt cp longfile.txt dir1 cp longfile.txt dir2
任务一
使用which搜索"touch",输出结果到search_1.txt(20分)
which touch > search_1.txt
任务二
搜索文件夹search中所有以"dir"开头的文件夹,输出结果到search_2.txt(30分)
find . -name ''dir*'' > search2.txt
任务三
搜索文件夹search中大于1k的普通文件类型文件,输出结果到search_3.txt(30分)
find . -type f -size +1k > search3.txt
作者有话说:第三个稍微有一点问题,后面有正确的会更新



