关于命令回传值的学习总结

命令回传值$?有两种:与 && 或 ||

     cmd1 && cmd2  若cmd1运行完毕且正确运行($?=0),则开始运行cmd2;

                                   若cmd1运行完毕且为错误($?!=0),则cmd2不运行;

     cmd1 ||  cmd2     若cmd1进行完毕且正确运行($?=0),则cmd2不运行;               

                                    若cmd1运行完毕且为错误($?!=0),则开始运行cmd2;

  亦即不管与还是或,运行正确回传值均为0,不同的是与的时候运行cmd2,而或的时候不运行cmd2;

        若运行错误,则回传值均为非0,但与的时候不运行cmd2,而或的时候运行cmd2。。

重点: 当与和或联合起来起来用时,有两中情况,与在前或在后和与在后或在前;

   例 ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe,此时因为不管怎么样,都要建立/tmp/abc目录下的文件hehe,

所以此时应该将或放在前面,与放在后面。

    ls /tmp/abc  && echo "exit" || echo "not exit",此时时因为后面的两个选项只能二选一,故应该与在前或在后。

   若此时仍将或在前,即ls /tmp/abc  || echo "not exit" && echo " exit"与在后,那么结果是exit与not exit均会显示出来。因为

不管ls /tmp/abc是否存在,或前后的ls /tmp/abc/ 和echo “not exit“总有一个会执行,此时向后回传0,则&&后的echo ”exit“绝对会执行。


任务描述 相关知识 find -type 文件类型使用方法 size <+|-|=文件大小>使用方法 -exec使用方法 编程要求 测试说明 任务描述 通过前两关的学习,我们学会了如何定位一个文件/目录,但是Linux系统还提供了一个搜索文件/目录的命令,这个命令就是-find,find命令是每个学习Linux的用户都会遇到的,通过本关的学习,我们将会掌握find命令的常用用法以及高级用法。 本关任务:使用find命令查找系统中的文件/目录。 相关知识 通过以上两关的学习,我们已经学会了使用locate命令查询系统中的文件/目录,使用which和whereis命令来定位可执行文件的位置。接下来让我们一起学习查询文件/目录的最后一个命令-find。 find命令与locate命令相比各有各的优缺点,locate命令的优点就是查找速度比find命令快的多,但是缺点也比较明显,locate命令无法查找最新添加的文件/目录以及会查找出来已经过期的文件/目录。 相反find命令的优点就是可以按照自定义的方法查找任何文件,缺点就是查询速度比较慢,因为是通过遍历硬盘来查找而不像locate命令事先建立好数据库来进行查找。 接下让我们详细的学习find的使用方法。 find find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 具体命令如下: find 查找目录 查找参数 查找内容 常用查找参数如下: -amin<+|-分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算; -atime<+|-24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算; -cmin<+|-分钟>:查找在指定时间之时被更改过的文件或目录; -ctime<+|-24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算; -mmin<+|-分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算; -mtime<+|-24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算; -depth:从指定目录下最深层的子目录开始查找; -exec<执行指令>:假设find指令的回传为True,就执行该指令; -follow:排除符号连接; -gid<群组识别码>:查找符合指定群组识别码的文件或目录; -group<群组名称>:查找符合指定群组名称的文件或目录; -uid<用户识别码>:查找符合指定的用户识别码的文件或目录; -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录; -name<范本样式>:指定字符串作为寻找文件或目录的范本样式; -iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别; -inum<inode编号>:查找符合指定的inode编号的文件或目录; -newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录; -size<+|-|=文件大小>:查找符合指定的文件大小的文件; -type<文件类型>:只寻找符合指定的文件类型的文件; -a:是前后条件都要满足; -o :是满足一个条件就好; +:表示大于设置的文件; - :表示小于设置的文件; = :表示等于设置的文件; 注意:通常使用find命令的时候使用root权限,这样就有权限查找任何目录下的内容,本平台默认权限是root权限,所有在本平台上执行find命令时不需要加sudo。 案例演示1: 查找/etc目录下以my开头以.conf结尾的文件或目录,具体使用如下命令: sudo find /etc -name "my*.conf" *表示任意字母。 案例演示2: 查找/etc目录下在超过7天前被访问的文件或目录,具体使用如下命令: sudo find /etc -atime +7 案例演示3: 查找/etc目录下恰好在7天前被访问的文件或目录,具体使用如下命令: sudo find /etc -atime 7 案例演示4: 查找/etc目录下在5分钟内被访问的文件或目录,具体使用如下命令: sudo find /etc -amin -5 -type 文件类型使用方法 常见文件类型: f:普通文件 l:符号链接 d:目录 c:字符设备 b:块设备 s:套接字 p:Fifo 案例演示: 查找/etc目录下以my开头的目录,具体使用如下命令: sudo find /etc -name "my*" -a -type d size <+|-|=文件大小>使用方法 常见文件大小单位: b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节 案例演示: 查找/etc目录下大于1M的文件,具体使用如下命令: sudo find /etc -size +1M -exec使用方法 具体使用方法如下: find … -exec 要执行的命令 {} \; -exec选项后面跟随着所要执行的命令或脚本,然后是一个空格一对儿{}一个空格和一个\;。 注意:要执行的命令和{之间以及}与\;之间的空格是不能省略的。 案例演示: 查找/etc目录下大于1M的文件/目录的详细信息,具体使用如下命令: sudo find /etc -size 1M -exec ls -l {} \; 编程要求 请在右侧编辑器中补充代码,使用find命令查找文件或目录,具体编程要求如下: 使用find命令查找当前目录中所有以.conf结尾的文件/目录; 使用find命令查找当前目录中所有以my开头的目录; 使用find命令查找/root目录中大于1M的文件; 使用find命令查找/root目录中类型为符号链接且文件名以 Link 结尾的所有链接详细数据(提示使用ls -l查看文件详细数据)。 测试说明 平台将对你编写的代码进行评测: 注意:本平台默认权限是root,所以执行命令不需要加sudo。 预期输出: 查找当前目录中所有以.conf结尾的文件/目录成功 查找当前目录中所有以my开头的目录成功 查找/root目录中大于1M的文件成功 查找/root目录中所有符号链接的文件详细数据成功 胜利者往往是从坚持最后五分钟的时间中得来成功。——牛顿 开始你的任务吧,祝你成功!
最新发布
06-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值