【问题标题】:Check if directory has any files检查目录是否有任何文件
【发布时间】:2023-03-25 00:20:02
【问题描述】:

我需要检查一个目录中是否有任何文件,递归,但不关心是否有空的子目录。

我不能使用经典版

[ "$(ls -A /E/Nuvem/Músicas)" ] && echo "Not Empty" || echo "Empty"

因为它也考虑子目录。

我试过检查整个文件夹的大小,但每个空文件夹都有 4kb。我对find 无能为力

编辑:我正在将文件上传到 AWS S3 云,我不需要发送空文件夹,我只是保留它们以帮助组织新文件。

【问题讨论】:

  • 为什么不find
  • 如何使用 find?
  • [ -n "$(find /tmp/folder -prune -empty)" ] && echo 'empty' || echo 'not empty'
  • @0stone0 这个问题和答案似乎没有忽略子目录。我已经尝试过您的解决方案,但它显示“不为空”的文件夹带有一个空子文件夹,我希望在该文件夹中为“空”。

标签: linux bash shell


【解决方案1】:

检查这是否适合您:

[ "$(find /E/Nuvem/Músicas -maxdepth 1 -type f)" ] && echo "Not Empty" || echo "Empty"

编辑:如果您想检查文件的子文件夹,只需忽略 -maxdepth 1 选项:

[ "$(find /E/Nuvem/Músicas -type f)" ] && echo "Not Empty" || echo "Empty"

【讨论】:

  • 如果文件夹有一个子文件夹,里面有一个文件,结果应该是“Not Empty”并且这个测试显示“Empty”...但是删除-maxdepth 1似乎有效。
猜你喜欢
  • 2017-04-28
  • 2015-11-11
  • 1970-01-01
  • 2018-05-08
  • 2016-02-01
  • 2021-09-08
  • 2018-10-01
  • 2023-03-21
  • 2014-10-03
相关资源
最近更新 更多