求教一个查找空文件夹的 bash 脚本

2022-08-12 09:18:53 +08:00
 kerrspace
最近在搜集 NGA 上的帖子(关于女拳等等)操作就是 mkdir 和帖子一样名字的文件夹,然后把帖子整个生成一个 png 截图然后保存到文件夹里面,但是问题是有的时候我手滑操作错了,漏了一些文件夹没有把图片放进去。

现在我写了一个 bash 的脚本,目的是让它输出当前目录下所有文件夹里面有没有空的,但是写出来的代码根本探测不到空文件夹,求各位对 bash 脚本熟悉的老哥捉虫,我想知道我错在哪里了

for dir in */; do
if [ -z "ls -A ./$(dir)/*" ]; then
echo "Empty"
else
echo "Not Empty"
fi
done
2041 次点击
所在节点    程序员
17 条回复
yfugibr
2022-08-12 09:26:04 +08:00
find . -type d -empty
yfugibr
2022-08-12 09:32:16 +08:00
你的 ls -A 那句用双引号括起来是不会执行的,直接被当作字符串了,想执行用反引号 `ls` 或 $(ls)
xmai
2022-08-12 09:33:36 +08:00
find ~/Downloads/ -type d -empty | wc -l
xmai
2022-08-12 09:34:06 +08:00
find ~/Downloads/ -type f -not -empty | wc -l
xmai
2022-08-12 09:49:24 +08:00
#!/bin/bash
for dir in */; do
if [ "$(ls -A $dir)" ]; then
echo "Wow, $dir is not Empty"
else
echo "$dir is Empty"
fi
done
lolizeppelin
2022-08-12 09:51:45 +08:00
一个带空格的就要了你们这些脚本的命
没必要不要写 shell,shell 水太深你们把握不住....
james122333
2022-08-12 11:07:21 +08:00
这问题可以回答

#!/bin/bash

for d in */
do
for f in $d*
do
[[ -e "$f" ]] && break 1
done && echo "Directory '${d%\/}' is not emtpy" || echo "Directory '${d%\/}' is emtpy"
done
james122333
2022-08-12 11:27:27 +08:00
@lolizeppelin
本来就不建议档名有空格

有空格第二个 for $d*改成"$d"*
xz410236056
2022-08-12 11:31:09 +08:00
@james122333 #8 谁说文件夹不建议空格的。。Windows mac Linux 都一堆系统文件夹中间带空格。
james122333
2022-08-12 14:36:26 +08:00
@xz410236056

应用归应用 系统归系统 你看过哪些重要组件是如此的 其它系统不管 linux 是这样
lululau
2022-08-12 14:40:27 +08:00
one-liner 不算脚本哈😂
mingl0280
2022-08-12 23:34:17 +08:00
@james122333 可别 linux 是这样了,linux 底下直接写 utf8 带单引号的文件名的脚本我都见过。
mingl0280
2022-08-12 23:34:42 +08:00
@xz410236056 见识少是这样的
mingl0280
2022-08-12 23:36:55 +08:00
@james122333 Windows 早期还推荐 8.3 呢……
james122333
2022-08-13 00:51:13 +08:00
@mingl0280

你有看文吗 系统以及大部份应用包内名称是没空格的 你爱看多少例外随你 看过的脚本也几乎没有含空格的名称 win 下倒是看过很多 可能有些人把 win 的习惯带进来 特例当通例
mingl0280
2022-08-13 05:24:49 +08:00
@james122333 我说你这就是 8.3 时代的毛病,咋好像跟戳了你 g 点似的……
james122333
2022-08-13 18:07:32 +08:00
@mingl0280

win 下从第几版开始并不关心 在所有案例上没空格是通例 虽然 win 下有空格的很多 没空格的也很多 比起脚本更常见在于说明文档和影音 好几分可能是楼主应用范围没错 但在几乎所有情况下没空格更好做事 尤其对 shell 来说空格是魔法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872338

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX