首页 > 解决方案 > 嵌套 for 循环内的 Bash shell 文件大小比较

问题描述

假设我想一次比较不同文件夹中几个文件的大小。

#!/bin/bash
for i in folder1/*.*; do
size1=$(stat -c%s "$i")

  for j in folder2/*.*; do
    size2=$(stat -c%s "$j")
    total=0;

    while [ "$size1" -ge $total ]; do
      (( total+=size2 ))
      $j >> text.txt
    done
  done  
done
cat text.txt

对于文件夹 1 中的每个文件,我希望此脚本记下文件夹 2 的第一个文件的名称,该文件sum小于文件夹 1 中给定文件的大小。当total得到超过$i时意味着我们已经找到了足够多的总和大于的文件$i

并排输出一个简单的行。文件:file2-1 file2-2 file2-3 ...
是否甚至可以通过仅使用给定的手段来实现?

标签: bashshellfor-loopfile-ioscripting

解决方案


推荐阅读