加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash脚本 – 查找具有非零字节内容的目录

发布时间:2020-12-15 21:03:38 所属栏目:安全 来源:网络整理
导读:我将如何使用 Bash脚本在我的工作目录中找到至少包含非零字节文件的所有目录?这个 : 找 . -maxdepth 1-type d -size 1c |分类 似乎不起作用 解决方法 不确定是否完全理解.如果我有./lvl1/lvl2/file(文件非空)并且lvl1只包含空文件和目录lvl2,那么输出中是
我将如何使用 Bash脚本在我的工作目录中找到至少包含非零字节文件的所有目录?这个 :

找 . -maxdepth 1-type d -size 1c |分类

似乎不起作用

解决方法

不确定是否完全理解.如果我有./lvl1/lvl2/file(文件非空)并且lvl1只包含空文件和目录lvl2,那么输出中是否应该出现lvl1?

我以为你想要它.认为这工作:

find . -mindepth 2 -type f -size +0 | cut -d/ -f2 | uniq

查找工作目录的所有子目录中的内容,以查看其中是否存在非空文件.我们只看到感兴趣的关卡名称. uniq,因为目录不太可能只包含1个非空文件.

编辑:减慢它的最大的事情可能是(没有做任何测试lol)在找到大小> 0的文件之后发现继续查找目录(我们应该能够停止查看这一点).可以在每个子目录上调用find,然后在看到第一个匹配时找到exit.

for DIR in `find . -mindepth 1 -maxdepth 1 -type d`; do
    find "$DIR" -type f -size +0 -print -quit
done | cut -d/ -f2

可以在这里放弃对uniq的调用(因为每个顶级目录只有1个结果).我不认为做任何事情来摆脱削减将有很大帮助.

另一件事是你可能想要改变它看着常规文件,而不是看目录或其他东西(它会跳过一堆东西).呃,而不是“-type f”考虑使用“!-type d”

即将入睡所以我完全有可能错过了一些东西/做了一些愚蠢的xD

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读