有关如何返回文件夹中找到的文件数量的建议

有关如何返回文件夹中找到的文件数量的建议

创建一个脚本来询问用户文件夹的名称,并让脚本返回在该文件夹中找到的文件数。如果文件夹不存在,则在屏幕上显示错误消息

我已经完成了这个问题的第一部分,并且我知道需要创建一个变量来存储在文件夹中找到的文件数。我只是卡在如何返回找到的文件数量上。关于我如何去做这件事有什么建议吗?我知道ls会使用该命令。

clear
echo -e "Option #11: Acquire the number of files within a particular folder\n\n"
echo -e "Enter in the Folder Name below\n"
read foldername
answer=$(grep $foldername)
if [ "$answer" = "" ]
then
clear
echo -e "\n No Such Folder Exists"
else

答案1

有几种方法可以解决这个问题。第一个是使用bash数组:

shopt -s nullglob
if [[ -d $foldername ]]; then
  files=("$foldername"/*)
  answer="${#files[@]}"
else
  printf '%s does not exist\n' "$foldername"
fi

如果您的 shell 不支持数组,您可以在 count 处循环:

count=0
for f in "$foldername"/*; do
  count=$((count + 1))
done

另一种选择是使用ls.这是最不可靠的方法,因为它不能处理所有可能的文件名:

count=$(( $(ls -al | wc -l) - 2))

ls -al您需要减去 2 作为include.和的输出..

相关内容