2021-05-07 16:12发布
命令:ls -l | grep "^-" | wc -l 获取目录下的文件个数,不包含子目录
问题:ls -lR|grep "^-"|wc -l 这个命令可以查看目录下文件的个数,包含子目录。但执行时报"无效的多字节字符"
经过试验是中文编码导致出现问题,但不知如何解决?
若要获取目录个数,使用grep "^d" 即可
Find命令主要用于目标的搜索,尽量做到少使用,因为find会消耗大量的系统资源。
使用该命令时,需要避开服务器运行高峰期,最好在指定的小范围内进行搜索,不要轻易使用全盘搜索。
Find命令常用的参数有以下:
-name 根据名称进行匹配 "*":表示通配符、"?":表示匹配一个字符
-size 根据文件大小进行匹配 "+":表示大于、"-":表示小于 1个数据块=512字节=0.5K
-user/-group 根据所有者/组进行匹配
-type 根据文件类型进行匹配 "f":表示文件、"d":表示目录、"l"表示软件链接、"h":表示硬链接
-inum 根据文件i节点进行匹配 ls -i :显示文件的i节点号
-amin 根据访问时间进行匹配 "+":表示超过指定时间以外,"-":表示在指定时间以内
-cmin 根据文件属性改变时间进行匹配
-mmin 根据文件内容改变时间进行匹配
-a 根据多个条件进行匹配
-o 根据多个条件之一进行匹配
-exec 对搜索结果进行操作,不询问
-ok 对搜索结果进行操作,需要询问
-exec/-ok 命令 {} \;
[root@localhost home]# find /etc/ -name init* -a -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 30 Mar 6 2015 /etc/selinux/targeted/contexts/initrc_context
-rw-r--r--. 1 root root 28K Mar 6 2015 /etc/selinux/targeted/modules/active/modules/init.pp
-rw-r--r--. 1 root root 511 Mar 6 2015 /etc/inittab
-rw-r--r--. 1 root root 798 Mar 6 2015 /etc/sysconfig/init
-rwxr-xr-x. 1 root root 4.6K Jan 15 2015 /etc/sysconfig/network-scripts/init.ipv6-global
#!bin/bash#get all filename in specified pathpath=$1files=$(ls $path)for filename in $filesdo echo $filename >> filename.txtdone
#!bin/bash
#get all filename in specified path
path=$1
files=$(ls $path)
for filename in $files
do
echo $filename >> filename.txt
done
一个简单的shell脚本,将该目录下的所有文件名及目录名称写入到filename.txt。
注意:不去统计子目录是否存在文件,filename.txt文件本身不会进行统计
count = 0for index, line in enumerate(open(filepath,'r')): count += 1print count
也有说这样写:
方法一:
"对于文件内容比较多,采用enumerate获取文件行数"count = 0for index, line in enumerate(f): count += 1print(count)
最多设置5个标签!
一、获取目录下的文件/目录个数
命令:ls -l | grep "^-" | wc -l 获取目录下的文件个数,不包含子目录
问题:ls -lR|grep "^-"|wc -l 这个命令可以查看目录下文件的个数,包含子目录。但执行时报"无效的多字节字符"
经过试验是中文编码导致出现问题,但不知如何解决?
若要获取目录个数,使用grep "^d" 即可
1.1 Find命令简介
链接: https://www.cnblogs.com/mictms/p/5191449.html
Find命令主要用于目标的搜索,尽量做到少使用,因为find会消耗大量的系统资源。
使用该命令时,需要避开服务器运行高峰期,最好在指定的小范围内进行搜索,不要轻易使用全盘搜索。
Find命令常用的参数有以下:
-name 根据名称进行匹配 "*":表示通配符、"?":表示匹配一个字符
-size 根据文件大小进行匹配 "+":表示大于、"-":表示小于 1个数据块=512字节=0.5K
-user/-group 根据所有者/组进行匹配
-type 根据文件类型进行匹配 "f":表示文件、"d":表示目录、"l"表示软件链接、"h":表示硬链接
-inum 根据文件i节点进行匹配 ls -i :显示文件的i节点号
-amin 根据访问时间进行匹配 "+":表示超过指定时间以外,"-":表示在指定时间以内
-cmin 根据文件属性改变时间进行匹配
-mmin 根据文件内容改变时间进行匹配
-a 根据多个条件进行匹配
-o 根据多个条件之一进行匹配
-exec 对搜索结果进行操作,不询问
-ok 对搜索结果进行操作,需要询问
-exec/-ok 命令 {} \;
[root@localhost home]# find /etc/ -name init* -a -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 30 Mar 6 2015 /etc/selinux/targeted/contexts/initrc_context
-rw-r--r--. 1 root root 28K Mar 6 2015 /etc/selinux/targeted/modules/active/modules/init.pp
-rw-r--r--. 1 root root 511 Mar 6 2015 /etc/inittab
-rw-r--r--. 1 root root 798 Mar 6 2015 /etc/sysconfig/init
-rwxr-xr-x. 1 root root 4.6K Jan 15 2015 /etc/sysconfig/network-scripts/init.ipv6-global
二、获取目录下所有的文件名字
一个简单的shell脚本,将该目录下的所有文件名及目录名称写入到filename.txt。
注意:不去统计子目录是否存在文件,filename.txt文件本身不会进行统计
三、使用python统计文件行数
count = 0
for index, line in enumerate(open(filepath,'r')):
count += 1
print count
也有说这样写:
方法一:
"对于文件内容比较多,采用enumerate获取文件行数"
count = 0
for index, line in enumerate(f):
count += 1
print(count)
一周热门 更多>