我需要使用file
命令来计算目录中脚本的数量。
我知道如何使用以下方法获取文件类型file
:
file test
test: Bourne-Again shell script, ASCII text executable
但是我该如何file
计算脚本文件的数量呢?
答案1
脚本文件通常是可执行的,你可以使用 轻松找到目录中的所有可执行文件find
。请注意,这些用于查找可执行文件的命令将查找全部可执行文件,而不仅仅是脚本)。
find . -type f -executable
这将在您运行它的目录中找到所有可执行文件。它还将包括子目录中的文件,要忽略子目录,请添加-maxdepth 1
如下内容:
find . -maxdepth 1 -type f -executable
现在,这将给出所有文件的列表,而不是文件数量。要获取数量,请将结果通过管道传输到wc -l
:
find . -type f -executable | wc -l
如果某些文件是脚本文件但不可执行,则可以使用以下命令:
如果只计算当前目录中的文件:
file -b * | grep " script" | wc -l
如果需要包含子目录中的文件:
find . -type f -exec file -b {} \; | grep " script" | wc -l
在 grep 命令中的“script”之前添加了一个空格,以避免无效匹配(例如 TIF 文件中的“descriptive”)。