【发布时间】:2021-07-06 05:50:29
【问题描述】:
我无法处理文件名中的空格
脚本: 使用 find 我选择所有目录,它们被输入 ls 以计算目录中的文件数
bash 代码:
#!/bin/bash
for adir2 in $(find . -type d);
do
echo "[$adir2]"
DIRCOUNT=$(ls -1A $adir2 |wc -l)
if [ $DIRCOUNT -eq 0 ]; then
echo $adir2 "is empty"
fi
done
测试设置:
mkdir testdir
cd testdir
mkdir 01\ dir
在此处运行脚本
结果:
[.]
[./dir]
./dir is empty
[./01]
ls: cannot access './01': No such file or directory
./01 is empty
[dir]
dir is empty
我使用的是 Ubuntu 20
备注: 以下不起作用:
find /path/to/dir -empty -type d
显示所有目录。 显然空属性不存在。 该位置是带有 ext4 分区的外部 USB 驱动器。
【问题讨论】:
-
看起来像 askubuntu.com/questions/344407/… 的副本(我可能会用喜欢
find -print0和xargs -0拼凑一些东西) -
@MikaelÖhman 重复的问题并没有真正帮助我,但您的建议绝对是正确的,谢谢!对我有用的代码:'DIRCOUNT=$(find . -type d -print0 | xargs --null ls -1A|wc -l)'。接下来是将其分配给 adir2 但这会做。
-
@CharlesDuffy 非常感谢您的推荐