shell: find命令结合-size根据文件大小查找

01.利用shell 查找小于50字节的文件

在Unix或Linux shell中,要找到当前目录及其子目录下所有小于50字节(bytes)的文件,你可以使用find命令结合-size选项。这里是一个示例命令,它会查找所有小于50字节的文件:


find . -type f -size -50c

这个命令的各部分意义如下:

  • find:这是用于查找文件的命令。
  • .:表示当前目录。你可以用具体的目录路径替换.来在指定的目录中查找。
  • type f:表示只查找文件(不包括目录)。
  • size -50c:表示查找小于50字节的文件。这里的50c中的c代表字节(bytes)。

这条命令将会列出当前目录及所有子目录下,文件大小小于50字节的所有文件的路径。

02.利用shell 查找小于50字节的文件,并删除这些文件的上册目录

如果你想要查找当前目录下所有小于50字节的文件,并删除这些文件的上层目录,你需要小心操作,因为这可能会导致数据的永久丢失。下面是一个基于find命令的脚本示例,用于实现这个目标。请注意,这个操作是不可逆的,所以在执行之前务必确认这是你想要的操作。

此脚本会:

  1. 查找所有小于50字节的文件。
  2. 对于找到的每个文件,删除其上层目录。

find . -type f -size -50c | while read file; do
    dir=$(dirname "$file")
    echo "Deleting directory: $dir"
    rm -rf "$dir"
done

重要提示

  • 备份:在执行这类脚本之前,请确保你有当前数据的备份。
  • 测试:先在一个测试目录或者不重要的数据上执行,确保它的行为符合你的预期。
  • 审慎操作:这个命令会递归删除找到的文件的上层目录及其内容,这可能会包括你不想删除的其他文件或目录。

步骤解析:

  • find . -type f -size -50c:查找当前目录及子目录下所有小于50字节的文件。
  • while read file; do ... done:对找到的每个文件执行循环。
  • dirname "$file":获取文件的上层目录路径。
  • rm -rf "$dir":强制递归删除这个目录及其所有内容,不会有任何提示。

请谨慎使用这个脚本,确保你完全理解其行为及潜在的风险。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bio Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值