我在目录中有文件,我想知道BASH中这些文件的平均数量。我在4个文件的文件夹中,我想写一个代码,它会给我这个目录中的平均文件数。我发现了一些常见的Unix find average file size,但这给了我平均文件大小,但我想获得这些文件的平均数量或数量。
答案 0 :(得分:0)
使用tree -F
命令。它将完成您所需的大部分工作。例如,
转到/dir1/dir2/lib/python3.4/venv python库目录并键入tree -F。然后,您将获得以下行。以/结尾的那个是目录。你可以通过计算|的数量来计算出子目录结构在线。
|-- __init__.py
|-- __pycache__/
| |-- __init__.cpython-34.pyc
| `-- __init__.cpython-34.pyo
`-- futures/
|-- __init__.py
|-- __pycache__/
| |-- __init__.cpython-34.pyc
| |-- __init__.cpython-34.pyo
| |-- _base.cpython-34.pyc
| |-- _base.cpython-34.pyo
| |-- process.cpython-34.pyc
| |-- process.cpython-34.pyo
| |-- thread.cpython-34.pyc
| `-- thread.cpython-34.pyo
|-- _base.py
|-- process.py
`-- thread.py
换句话说,大部分工作都是由树-F命令完成的。
答案 1 :(得分:0)
试试这个:
FILES=$(find . -type f | wc -l)
DIRS=$(find . -type d | wc -l)
AVG=$(($FILES / $DIRS))
echo $AVG
注意这有整数精度,即没有小数的整数。 要获得3个小数位,请使用此黑客(好的不要起诉我):
AVG=$((1000 * $FILES / $DIRS))
echo $AVG | sed "s/\(...\)$/\.\1/"