Bash Shell脚本FOR遍历早于特定日期的文件

海因·杜·普莱西斯

我正在尝试识别和删除Shell脚本中早于某个固定日期的文件。下面是一个仅对其进行计数的脚本。我不能使用find或其他任何会建立参数的东西,因为此目录中有150万个文件,我得到了

-bash: /usr/bin/find: Argument list too long

错误。所以我当前的缩写脚本是:

y=0;
cond=$(date -d 2020-10-15 +%s)
for FILE in *tele*
do
  if [ $FILE -ot $cond ]
  then
    y=$((y+1))
  fi
done
echo $y

它应该计算所有文件(计算日期为将来的日期),但会重新调整为0。我认为我没有使用正确的日期类型进行比较。

00

这是计数文件的简单技巧:

find … -printf x | wc -c

基本上,对于每个文件,打印字节“ x”,然后计算字节数。


至于脚本失败的原因,摘要-ot[ PATH1 -ot PATH2 ],您可以像这样(未经测试)轻松模拟它:

reference="$(mktemp)"
touch "--date=@${cond}" "$reference"
…
if [[ "$path" -ot "$reference" ]]
then
    …

运行时比较:

$ cd "$(mktemp --directory)"
$ touch {1..100000}
$ time find . -mindepth 1 -printf x | wc -c
100000

real    0m0.072s
user    0m0.036s
sys     0m0.040s
$ time for FILE in *
do
   if [ $FILE -ot 0 ]
   then
       y=$((y+1))
   fi
done

real    0m0.438s
user    0m0.334s
sys     0m0.105s

find对于100000个文件,解决方案的速度提高了约6倍。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本:遍历文件

来自分类Dev

Linux Bash Shell-文件遍历特定范围?

来自分类Dev

在bash脚本中为特定日期从csv中选择行

来自分类Dev

在OS X终端上无法使用date命令更改Bash shell中的特定日期格式

来自分类Dev

bash中的Unix脚本可搜索日志并返回特定日志文件的特定部分

来自分类Dev

遍历`ls`会导致bash shell脚本

来自分类Dev

使用bash脚本遍历目录中的文件

来自分类Dev

Bash脚本删除早于N天的文件,但排除某些文件夹中的文件

来自分类Dev

Unix Bash Shell脚本文件大小

来自分类Dev

检查动态命名文件中的特定日期并使用Shell脚本创建注销日期

来自分类Dev

Bash / Shell脚本查找所有文件,包括关键字和特定文件类型

来自分类Dev

Bash Shell 脚本:读取文件夹的修改日期并按月列出

来自分类Dev

BASH脚本遍历XML文件中的ID列表并将名称打印/输出到shell或输出文件?

来自分类Dev

在bash中:仅当文件早于X分钟时,如何查找和删除包含特定文件的目录

来自分类Dev

如果日期早于30天,请使用bash删除文本文件中的行

来自分类Dev

帮助bash或shell脚本

来自分类Dev

bash shell脚本错误

来自分类Dev

删除早于特定日期的文件,并排除文件夹下的直接文件

来自分类Dev

如何创建zip / gz / tar文件,以确定文件是否早于UNIX或Linux中的特定日期

来自分类Dev

如何根据文件路径中的目录递归删除早于特定日期的 *.bak 文件?

来自分类Dev

Bash shell 脚本:将文本附加到现有文件的特定行而无需换行

来自分类Dev

Bash脚本-遍历find的输出

来自分类Dev

遍历bash脚本参数

来自分类Dev

遍历bash脚本参数

来自分类常见问题

如何使用Bash遍历日期?

来自分类Dev

Bash脚本遍历子目录并写入文件

来自分类Dev

如何使用Bash脚本遍历两个文件

来自分类Dev

bash脚本-遍历文件并添加到不同的变量

来自分类Dev

Bash脚本遍历子目录并写入文件

Related 相关文章

  1. 1

    Bash脚本:遍历文件

  2. 2

    Linux Bash Shell-文件遍历特定范围?

  3. 3

    在bash脚本中为特定日期从csv中选择行

  4. 4

    在OS X终端上无法使用date命令更改Bash shell中的特定日期格式

  5. 5

    bash中的Unix脚本可搜索日志并返回特定日志文件的特定部分

  6. 6

    遍历`ls`会导致bash shell脚本

  7. 7

    使用bash脚本遍历目录中的文件

  8. 8

    Bash脚本删除早于N天的文件,但排除某些文件夹中的文件

  9. 9

    Unix Bash Shell脚本文件大小

  10. 10

    检查动态命名文件中的特定日期并使用Shell脚本创建注销日期

  11. 11

    Bash / Shell脚本查找所有文件,包括关键字和特定文件类型

  12. 12

    Bash Shell 脚本:读取文件夹的修改日期并按月列出

  13. 13

    BASH脚本遍历XML文件中的ID列表并将名称打印/输出到shell或输出文件?

  14. 14

    在bash中:仅当文件早于X分钟时,如何查找和删除包含特定文件的目录

  15. 15

    如果日期早于30天,请使用bash删除文本文件中的行

  16. 16

    帮助bash或shell脚本

  17. 17

    bash shell脚本错误

  18. 18

    删除早于特定日期的文件,并排除文件夹下的直接文件

  19. 19

    如何创建zip / gz / tar文件,以确定文件是否早于UNIX或Linux中的特定日期

  20. 20

    如何根据文件路径中的目录递归删除早于特定日期的 *.bak 文件?

  21. 21

    Bash shell 脚本:将文本附加到现有文件的特定行而无需换行

  22. 22

    Bash脚本-遍历find的输出

  23. 23

    遍历bash脚本参数

  24. 24

    遍历bash脚本参数

  25. 25

    如何使用Bash遍历日期?

  26. 26

    Bash脚本遍历子目录并写入文件

  27. 27

    如何使用Bash脚本遍历两个文件

  28. 28

    bash脚本-遍历文件并添加到不同的变量

  29. 29

    Bash脚本遍历子目录并写入文件

热门标签

归档