极客君最近做项目,刚好遇到需要统计一些sql文件数量的问题,用到一些实用的shell命令,记录下来,以后万一还能用上呢?
如果在终端不打开文件看到一共多少行,则可以使用wc命令来实现:
wc -l [filename]
例如我有一个MySQL配置文件my.cnf,其内容如下。
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION
max_allowed_packet = 10G
wait_timeout = 600010
innodb_buffer_pool_size =64MB
执行”wc -l my.cnf“的输出如下,开头数字就是文件内容的总行数。
5 my.cnf
如果想统计某个文件夹中文件个数,命令如下所示。
ls -l ./| grep "^-" | wc -l
统计某个文件夹中目录个数,命令则为:
ls -l ./| grep "^d"|wc -l
如果想递归子文件,也就是说子目录里面的文件们,则需要增加一个“R”参数,命令如下所示。
ls -lR | grep "^-" | wc -l
同样的,如果是想递归统计子目录的个数,则命令为:
ls -lR ./| grep "^d"|wc -l