Unix查找目录中的平均文件数

时间:2016-03-15 21:13:32

标签: bash unix

我在目录中有文件,我想知道BASH中这些文件的平均数量。我在4个文件的文件夹中,我想写一个代码,它会给我这个目录中的平均文件数。我发现了一些常见的Unix find average file size,但这给了我平均文件大小,但我想获得这些文件的平均数量或数量。

2 个答案:

答案 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/"