shell详解 六

1.unset命令
unset命令的作用是从环境中删除变量或函数。这个命令不能删除shell本身定义的只读变量

#/bin/sh
foo="Hello World"
echo foo

unset foo

echo foo


2.find命令

它的功能是查找文件,它及其有用,它不仅仅是因为它有选项,测试和动作类型的参数,也由于其中一个参数的处理结果可以影响后续参数的处理。
首先看一个例子,在本地机器上查找名为wish的文件。
find / -name wish -print
/usr/bin/wish
这个命令的含义是:从根目录开始查找名为wish的文件并且输出文件名。这非常简单。

find / -mount -name wish -print
/usr/bin/wish
这样任然找到文件,但不必再搜索挂载的其他文件系统。
find [path] [options] [tests] [actions]
path域很容易理解,我们可以使用绝对路径,如/bin,或者相对路径,如. 如果需要,我们可以指定多个路径,如find /var /home。

选项 含义
-depth 在查看目录本身之前先搜索目录的内容
-follow 跟随符号链接
-maxdepths N 最多搜索N层目录
-mount 不搜索其他文件系统中的目录

测试 含义
-atime N 文件在N天之前被访问过
-mtime N 文件在N天之前被修改过
-name pattern 文件名匹配提供的模式pattrern,为了确保pattern被直接传递给find命令而不是由shell来处理,patern必须总是用引号括起来。

-newer otherfile 文件比otherfile文件要新
-type c 文件的类型为C,C可以是一个特殊类型。最普通的类型是d目录和f普通文件。

-user username 文件的拥有者是指定的用户username

操作符,短格式 长格式 含义
! -not 测试取反
-a -and 两个测试都必须为真
-o -or 两个测试之一必须为真

find  .  -newer while2  -print

这个会打印  .
                 ./elif3
                 ./words.txt
  看起来不错,不过结果包含当前目录,而不是我们想要的。

 find  .   -newer while2 -type f -print

它打印的是:  ./elif3
                    ./words.txt

find  .   \(-name "_*"  -or  -newer while2 \) -type f -print

必须转义圆括号使得它们不会被shell处理



可以可靠搜索文件了,下面看看在发现匹配指定条件之后,我们可以执行的动作。

-exec command 执行一条命令。

-print 打印文件名

-ls 对当前文件使用命令ls -dils

find . -newer while2 -type f -exec ls -l {} \;
-rwxr-xr-x 1 rick rick 275 Feb 8 17:07 ./elif3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值