linux使用关联数组统计当前目录下,普通文件的数量及目录的数量,其它类型文件不统计
时间: 2024-02-24 15:56:51 浏览: 48
好的,以下是使用bash脚本实现的示例代码:
```bash
#!/bin/bash
# 初始化计数器
declare -A file_count
file_count["regular"]=0
file_count["directory"]=0
# 遍历当前目录
for file in *; do
# 统计普通文件数量
if [ -f "$file" ]; then
file_count["regular"]=$((file_count["regular"]+1))
# 统计目录数量
elif [ -d "$file" ]; then
file_count["directory"]=$((file_count["directory"]+1))
fi
done
# 输出结果
echo "普通文件数量: ${file_count["regular"]}"
echo "目录数量: ${file_count["directory"]}"
```
这个脚本会遍历当前目录下的所有文件和目录,使用关联数组统计普通文件的数量和目录的数量,最后输出结果。请注意,脚本会忽略其它类型的文件,不会对其进行统计。
相关问题
使用关联数组统计Linux系统下,不同群组的用户数量
可以使用以下命令来统计Linux系统下不同群组的用户数量:
```
cat /etc/group | awk -F: '{print $1}' | while read group; do echo -n "$group: "; grep "^$group:" /etc/passwd | wc -l; done
```
这条命令的作用是:
1. 使用 `cat /etc/group` 命令读取 `/etc/group` 文件中的群组信息。
2. 使用 `awk -F: '{print $1}'` 命令将每行群组信息中的第一个字段(群组名)提取出来,并输出。
3. 使用 `while read group` 命令循环读取每个群组名。
4. 对于每个群组名,使用 `grep "^$group:" /etc/passwd | wc -l` 命令在 `/etc/passwd` 文件中查找以该群组名开头的行(即属于该群组的用户信息),并统计行数,即为该群组下的用户数量。
5. 将群组名和用户数量输出。
这样就可以得到Linux系统下不同群组的用户数量了。
Linux统计当前目录下,每个文件夹内的文件数量
在Linux中,你可以使用`find`命令配合`wc -l`命令来统计指定目录下每个子目录内的文件数量。`find`用于查找文件,`wc -l`用于计算行数,因为每个非空目录可以视为一行。以下是基本步骤:
1. 打开终端。
2. 使用绝对路径或相对路径指定你要统计的目录,例如:
```
find /path/to/directory -type d -exec wc -l {} \; | awk '{total += $1} END {print "Total files in subdirectories:", total}'
```
或者对于当前目录下的统计:
```
find . -type d -exec wc -l {} \; | awk '{total += $1} END {print "Total files in subdirectories:", total}'
```
这里的 `-type d` 参数表示只查找目录,`{} \;` 是给`wc -l`传递目录作为参数的方式,`awk`负责累加每个结果(文件数量)并最终输出总和。
这个命令会打印出每个子目录内文件的数量以及总的文件数量。