![有关如何返回文件夹中找到的文件数量的建议](https://linux22.com/image/64522/%E6%9C%89%E5%85%B3%E5%A6%82%E4%BD%95%E8%BF%94%E5%9B%9E%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E6%89%BE%E5%88%B0%E7%9A%84%E6%96%87%E4%BB%B6%E6%95%B0%E9%87%8F%E7%9A%84%E5%BB%BA%E8%AE%AE.png)
创建一个脚本来询问用户文件夹的名称,并让脚本返回在该文件夹中找到的文件数。如果文件夹不存在,则在屏幕上显示错误消息
我已经完成了这个问题的第一部分,并且我知道需要创建一个变量来存储在文件夹中找到的文件数。我只是卡在如何返回找到的文件数量上。关于我如何去做这件事有什么建议吗?我知道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.
和的输出..
。