Ubuntu系统下的shell 命令
统计数量
1、统计当前文件夹内文件数量且包含子目录中的文件数量,命令如下:
ls -lR|grep "^-"| wc -l
2、统计当前文件夹内文件数量且不包含子目录文件数量,命令如下:
ls -l|grep "^-"| wc -l
3、统计当前文件夹下的目录个数且包含子目录
ls -lR|grep "^d"| wc -l
4、统计当前文件夹下的目录个数
ls -l |grep "^d"| wc -l
5、统计包含部分前缀名的目录下的命令如下:
ls -lR data*/|grep "^-"| wc -l
data 为目录名称
6.统计包含部分后缀名的目录下的命令如下:
ls -lR *data/|grep "^-" |wc -l
例如
查询当前路径下的指定前缀名(后缀名)的目录下的所有文件的数量(R是大写小写都可以)
ls -lR image*/|grep "^-"| wc -l
ls -lR *image/|grep "^-"| wc -l
7.查询当前路径下目录下的指定文件的数量
find ./ -name "*.jpg" |wc -l
8. 查询指定路径下目录下的指定文件的数量
find ./sgy* -name "*.jpg" |wc -l
9.查询固定文件夹下特定类型文件中是否含有某字符
find 路径(./表示当前路径) -name “*” | xargs grep -ri "关键字" | wc -l
-ri r表示递归子目录 i 表示忽略大小写
参数总结
对每个命令参数做一下说明备注:
ls -l该命令表示以长列表输出指定目录下的信息(未指定则表示当前目录),R代表子目录中的“文件”,且必须是大写的R,这个“文件”指的是目录、链接、设备文件等的总称。
grep "^d"表示筛选目录,grep "^-"表示筛选文件。
wc -l表示统计输出信息的行数,因为经过前面的过滤已经只剩下普通文件,一个目录或文件对应一行,所以统计的信息的行数也就是目录或文件的个数
ubuntu查看磁盘分区使用
1. 查看已经挂载的
df -h
2. 查看所有盘挂载情况
lsblk
3. 使用如下命令查看磁盘:
sudo fdisk -l
4. 临时挂载
创建要挂载的磁盘目录
sudo mkdir -p /disk/data
挂载硬盘到该文件夹上
sudo mount /dev/sda2 /disk/data
修改文件或目录的拥有者
把文件的所有者改为指定的用户,执行
sudo chown 用户名 文件名
把指定目录及其下的所有文件和子目录的属主改成指定的用户名,执行
sudo chown -R 用户名.组名 目录名
查看历史命令
history
可以保留最近1000条
!num 可以快捷调用使用过的历史命令
Ubuntu导入window上有中文字符的文件乱码
-
windows下的中文文件名拷贝到ubuntu下面以后,文件名直接变成乱码,原因为windows下的文件名以GBK编码,而Ubuntu下的文件 名为utf-8编码。
ubuntu下有一个工具可以用来转换文件名的编码,这个工具是convmv 。安装方法: apt-get install convmv
使用方法: convmv -f GBK -t utf-8 --notest *
如此可以把当前目录下的所有中文文件名改为utf-8编码,文件名乱码可以被消除。 -
zip 文件解压乱码
windows中的zip压缩包放到ubuntu中,unzip xxxx.zip命令解压,解压之后文件名字会出现乱码。
首先可以用lsar命令查看zip压缩包文件 名字是否正常lsar xxx.zip #列出所有文件
如果列出的文件名都能正常显示,那么可以直接用下面的命令解压,unar xxx.zip #解压所有文件
如果上面用lsar列出的文件名不正确,那么可以用下面的命令。
lsar -e GB18030 xxx.zip #指定使用GB18030编码列出所有文件
unar -e GB18030 xxx.zip #指定使用GB18030解压所有文件