限定主目录下子目录大小

#!/bin/bash
DIR=/data/htdocs
CHECK=/data/sh/check_dir.tmp
ls -1 $DIR > $CHECK
MAX=256
for i in `cat $CHECK`;
do
size=$(/usr/bin/du -sm $DIR/$i |/bin/cut -f1)
        if [ "$MAX" -lt "$size" ]
                then
                        echo "`date`" >> /data/logs/check_waring.txt
                        echo "$i Exceed maximum $MAX"M"" >> /data/logs/check_waring.txt
                        chmod 555 $DIR/$i -R
        else
            chmod 755 $DIR/$i -R
    
在Linux操作系统中,“主目录”通常指的是用户的家目录(Home Directory),每个用户登录时都会有一个默认的家目录,一般位于 `/home/用户名` 下面。在这个目录里可以存放个人配置文件、文档和其他私有数据。 要进入主目录并查找文件,您可以按照以下步骤操作: ### 步骤一:进入主目录 最简单的办法就是在终端中运行 `cd ~` 或者直接键入 `cd` 然后回车即可返回当前用户的家目录。这里的波浪线 (`~`) 是代表当前用户的家目录的一种简写形式。 例如: ```bash cd ~ # 或仅输入 cd 并按 Enter 键 ``` 如果您想要切换到其他用户的家目录,则可以在波浪线之后跟上那个用户的账号名,如 `cd ~otheruser`. ### 步骤二:使用 find 命令查找文件 一旦进入了所需的主目录后,接下来就可以利用 Linux 提供的强搜索功能来找寻特定文件了。这里我们推荐使用 `find` 工具来进行精确匹配或模糊查询。 以下是几个常见的用法示例: 1. **基于文件名查找** 如果您确切知道需要找的是哪一个文件,并且记得它的完整或部分名字,可以直接通过 `-name` 参数配合通配符(`*`, `?`, etc.)进行定位。 ```bash find . -type f -iname "document*" ``` 解释:上面这条命令会在当前目录下递归地寻找所有以"document"开头不论大小写的普通文件(-type f 表明限定为常规文件)并将它们列出来。 2. **基于修改时间查找** 当不知道具体文件的位置但是记得最后一次编辑的致日期范围的话,可以用 `-mtime n` (n天之前)或者 `-mmin m` (m分钟以前)来筛选符合条件的结果 示例:找出最近一周之内有所改动过的所有txt格式文本档 ```bash find ~/Documents -type f -name "*.txt" -mtime -7d ``` 3. **结合grep做内容检索** 若仅仅依靠文件名难以准确定位所需材料,还可以进一步借助管道(Pipe)`|`连接另一个叫作 `grep` 的工具,在找到的一批候选名单里面快速检查是否包含某些关键词的内容行 示例:从日志记录当中提取出含有字符串 'error' ```bash find ./logs -type f | xargs grep -i error ``` 4. **限制最深度** 有时候不想深入太多层级之下挖掘信息,这时可以通过设置 `-maxdepth LEVELS` 来控制最高允许遍历几层子目录。 比如只想查看一级子目录取证: ```bash find ~/.config -maxdepth 1 -type d ``` 这将列出 `~/.config` 目录下所有的第一级子目录而不向下探索更深一层。 5. **忽略大小写** 对于不区分字母写字母的情况,请考虑添加 `-iname` 替换 `-name` ,使得搜索更加灵活适应实际需求变化。 综上所述,掌握了上述技巧就能提高效率准确率地完成任务!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值