我想递归列出HOME
目录中的文件。我试图写我自己的脚本,所以我不应该使用命令find
或ls
。我的脚本是:bash中大于100K的列表文件
#!/bin/bash
minSize=102400;
printFiles() {
for x in "$1/"*; do
if [ -d "$x" ]; then
printFiles "$x";
else
size=$(wc -c "$x");
if [[ "$size" -gt "$minSize" ]]; then
echo "$size";
fi
fi
done
}
printFiles "/~";
所以,这里的问题是,当我运行此脚本,终端抛出Line 11: division by 0
和/home/gandalf/Videos/*: No such file or directory
。我没有分任何数字,为什么我得到这个错误?而第二个?
或者,我不能使用find
或ls
,因为我必须一个一个地向用户显示文件,如果他想查看下一个文件。这是可能的使用命令find
或ls
或只能写我自己的功能?
谢谢。
' “/〜”'是_literal_'/〜',因为波浪线扩展只发生在_unquoted_字符串,但即使不带引号'/〜'将无法工作,因为'〜'必须_开始_字符串才能扩展到主目录。 – mklement0
因此用“/ home”替换“/〜”会起作用吗? –
对于您的替代方案,您可以使用'find ... -print |同时读f;做...(逻辑在这里)...;完成'或(bash特定)'读取f;做...(逻辑在这里)...;完成<