Linux系统中常用的shell命令(文件目录操作)

在多文件中查找关键词的位置

grep -r --include=*.* quota ~/workspace/thanos_nlu/models/grep -r --include="." <key_words_to_search> <path_to_search>其中-R, -r, --recursiveRead  all files under each directory, recursively; this is equivalent to the -drecurse option.

批量修改文件名

通过 man rename 命令可以得知,rename 命令其实是一个 Perl 脚本命令, 它专用于批量地给多文件重命名(rename multiple files)。

rename 命令格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
perlexpr 是一种 Perl 脚本格式的正则表达式。
参数:
-v, --verbose
Verbose: print names of files successfully renamed.
详细模式:打印成功更改的文件名列表-n, --no-act
No Action: show what files would have been renamed.
测试模式:并不真正的执行命令,而只是显示哪些文件名应该怎么进行
更改,用于测试模式。-f, --force
Force: overwrite existing files.
强制模式:在更改文件名,如果更改后的文件已经存在时覆盖已经存在
的文件。

rename 的典型应用

  1. 批量更改文件扩展名

    $ ls
    1.txt 2.txt 3.txt 4.txt
    $ rename 's//.txt//.ext/' *
    $ ls
    1.ext 2.ext 3.ext 4.ext
    
  2. 批量删除文件扩展名

    $ ls
    1.txt 2.txt 3.txt 4.txt
    $ rename 's//.txt//' *
    $ ls
    1 2 3 4
    
  3. 批量添加文件扩展名

    $ ls
    1 2 3 4
    $ rename 's/$//.txt/' *
    $ ls
    1.txt 2.txt 3.txt 4.txt
    
  4. 按自己的方式批量重命名文件

    $ ls
    1.ext 2.ext 3.ext 4.ext
    $ rename 's/(/d)/file$1/' *
    $ ls
    file_1.ext file_2.ext file_3.ext file_4.ext
    

递归删除目录下所有exe文件

一次性删除某目录及其子目录下所有的exe文件。

$ find  .  -name  '*.exe'  -type  f  -print  -exec  rm  -rf  {} \;

一次性删除某目录及其子目录下所有的csp329_命名开头的文件。

$ find . -name 'csp329_*' -type f -print -exec rm -rf {} \;

注释:

  1. “.” 表示从当前目录开始递归查找
  2. " -name ‘*.exe’ "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
  3. " -type f "查找的类型为文件
  4. “-print” 输出查找的文件目录名
  5. 主要 的是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录之后执行该命令。
  6. exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一 个\,最后是一个分号

linux 下查找大于100M的文件

$ find . -type f -size +100M

Linux系统下查找大文件或目录

当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢?以易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小

$ du -sh [dirname|filename]

当前目录的大小:

$ du -sh .

当前目录下个文件或目录的大小:

$ du -sh *

显示前10个占用空间最大的文件或目录:

$ du -s * | sort -nr | head

Linux系统下移动大量文件

$ find ./ -name '__*.wav' | xargs mv --target-directory=./wav/

Linux 系统下删除大量文件(递归)

$ find /data/ -name "*_part_*.txt" | xargs rm -rf

批量将目录下所有文件进行 dos/unix 格式转换

# dos --> unix
$ find . -type f -name "*.txt" | xargs sed -i 's/\r$//g'
$ find . -type f -name "*.xml" -exec sed -i 's/^M$//g' {} \;# unix --> dos
$ find . -type f -name "*.txt" | xargs sed -i 's/$/\r\n/'

批量删除目录下所有文件空行

# 只删除空行
$ find . -type f -name "*.xml" -exec sed -i '/^\s*$/d' {} \;# 删除纯空行和由空格组成的空行
$ find . -type f -name "*.xml" -exec sed '/^[  ]*$/d'  {} \;

统计一个目录下所有文件的文本行数

# 统计目录下所有文件的文本行数
$ wc -l $(find . -type f -maxdepth 1)# 统计目录下指定文件后缀的文本行数
$ wc -l $(find . -name "*.txt")# 统计目录下指定多个文件后缀的文本行数
# 以.h、.C文件为例
$ wc -l $(find . -name "*.h" -o -name "*.C")# 统计包含某个字段的目录下包含某个字段的文件名文件的非空文本行数
$ find ./`ll | grep _某个字段  | tail -1| awk '{printf $9}'`/result/ -name "*.csv" | xargs grep '^.' | wc -l# 备注: find 命令中 -a, -o, -not 的使用
-a      连接两个不同的条件(两个条件必须同时满足)
$ find /tmp -name "*.sh" -a -user root-o      连接两个不同的条件(两个条件满足其一即可)
$ find /tmp -name "*.sh" -o -user root-not    对条件取反的
$ find /tmp -not -user root

查找在系统中为空的文件或者文件夹

# 查找空文件或者文件夹
$ find / -empty

删除大文件里指定行

# 删除包含特定字符("xxx")的行
$ sed -i '/xxx/d' filename# 删除第N行
$ sed -i 'Nd' filename# 删除第N~M行,file的[N,M]行都被删除
$ sed -i 'N,Md' filename
sed -i "${row0},${row1}d" filename        # 这里引号必须为双引号# 删除最后一行
$ sed -i '$d' filename# 补充 sed命令常用到的两个选项:
#     -i : 直接在文件上编辑 (edit files in place)
#     -e[默认选项]:只在命令行输出,而文件不改变
#    (add the script to the commands to be executed)

UTF-8(with BOM)与UTF-8相互转换

# UTF-8(with BOM)转UTF-8
## 对某个文件
$ sed -i '1 s/^\xef\xbb\xbf//' filename## 对某个目录
$ find ${path} -type f -name "*" -print | xargs -i sed -i '1 s/^\xef\xbb\xbf//' {}# UTF-8转UTF-8(with BOM)
## 对某个文件
$ sed -i '1 s/^/\xef\xbb\xbf&/' filename## 对某个目录
$ find ${path} -type f -name "*" -print | xargs -i sed -i '1 s/^/\xef\xbb\xbf&/' {}

Linux系统中常用的shell命令(文件目录操作)相关推荐

  1. 【大数据前置基础】Linux系统中VI编辑器使用、文件目录操作、权限管理、Java安装

    VI编辑器使用.文件目录操作.网络配置.常用命令与shell编程 1 VI编辑器使用 2 文件目录的操作 2.1 ls 显示文件和目录列表 2.2 mkdir 创建目录 2.3 cd 切换目录 2.4 ...

  2. Linux系统中常用命令行命令、快捷键、创建长路径的快捷键

    Linux系统中常用命令行命令.快捷键.创建长路径的快捷键 1.常用Linux命令: 1.1 文件和目录: cd /home 进入 '/home' 目录 cd - 返回上一级目录 cd -/- 返回上 ...

  3. linux命令打包文件,Linux系统中打包文件的命令详解

    linux系统中遇到要打包文件的时候我们该使用什么命令呢?下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux系统中打包文件的命令详解的相关知识,希望对大家有帮助! linux系统 ...

  4. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  5. linux怎么重复命令,Linux系统中重复执行历史命令的方法有哪些?

    今天小编要跟大家分享的文章是关于Linux系统中重复执行历史命令的方法有哪些?各位正在从事Linux运维工作的小伙伴们,如果要执行一条或多条之前输过的指令,要怎么处理?很多人会想到使用上下箭头去翻查历 ...

  6. linux批量删除screen,你不知道的linux系统中强大的screen命令

    linux系统中强大的screen命令可能很多用户还没感受到,下面介绍的就是linux系统中强大的screen命令,具体内容如下所述. 因为做二代测序分析的原因,经常需要运行很长时间的程序.由于时间很 ...

  7. Linux系统中常用软件的安装(os7)

    # Linux系统中常用软件的安装(os7) 文章目录 1 `JDK`安装 2 `tomcat`安装 (1) 解压缩tomcat.tar.gz (2) 运行tomcat/bin/startup.sh ...

  8. linux系统中如何查ip,在Linux系统中查看ip的命令是什么

    在Linux系统中查看ip的命令是什么 发布时间:2020-04-30 10:32:07 来源:亿速云 阅读:432 作者:小新 在排除网络问题,设置新连接或配置防火墙时,了解设备的 IP 地址非常重 ...

  9. 适用于linux的解压工具,Linux系统中常用的压缩和解压缩工具

    Linux系统中常用的压缩和解压缩工具 压缩:以时间换空间的一种操作: 压缩的原理:标记和替换: 压缩比:压缩之前与压缩之后的文件大小的比值:其中:纯文本文件的压缩比较大,视频.图像等文件压缩比小 能 ...

  10. Linux中常用的几个压缩工具,Linux系统中常用的压缩和解压缩工具

    Linux系统中常用的压缩和解压缩工具 压缩:以时间换空间的一种操作: 压缩的原理:标记和替换: 压缩比:压缩之前与压缩之后的文件大小的比值:其中:纯文本文件的压缩比较大,视频.图像等文件压缩比小 能 ...

最新文章

  1. Prism4文档翻译(第四章 第一部分) 转载bluesky234
  2. 疫情过后,2020年各省市GDP排行榜top10新鲜出炉,你的家乡排在第几?
  3. 12.源码阅读(app启动流程-android api 26)
  4. 给某个 SAP S/4HANA 用户分配 Business Role
  5. mysql卸载权限不够_Linu下启动MySQL结果显示:env: /etc/init.d/mysql:权限不够怎么解决?...
  6. Python多线程(自学必备 超详细)
  7. 服务器操作系统版本检查,服务器操作系统版本检查
  8. 724A - CAN总线
  9. python网络编程难点_python网络编程
  10. Python从头开始的演变策略
  11. Java的数据类型转换
  12. 凤凰项目-----读书笔记
  13. CentOS安装完没有ip地址的解决方法
  14. JQ树形菜单加表格混合使用:treeTable组件使用
  15. 优先队列优化迪杰斯特拉
  16. h标签,b标签,em,i ,u,s标签
  17. NLP自然语言处理系列-音乐推荐系统实战 -基于矩阵分解(SVD)的推荐
  18. java mac转unix_管理Java类路径(UNIX和Mac OS X)
  19. Android中Callable、Future、FutureTask的概念以及几种线程池的使用
  20. 深入浅出学算法008-韩信点兵

热门文章

  1. 金蝶K3cloud管理中心的管理员密码重置
  2. 小米盒子显示未连接电脑连接服务器,小米盒子不能连接电脑的原因与解决办法...
  3. matlab中concur怎么用,Matlab的concur、repmat、kron、reshape函数介绍
  4. 求助文,缺少stubs-n32_hard.h
  5. 梦幻西游跑商脚本教程
  6. xp计算机无法远程桌面连接,xp系统远程桌面不能连接指定计算机的处理方法
  7. 基于opencv的重叠图像的凹点分割(C++)
  8. 虚拟机架设服务器u盘不显示盘符,【图文详解】怎么解决win7虚拟机无法识别U盘问题...
  9. 20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)...
  10. Multispectral Deep Neural Networks for Pedestrian Detection(BMVC 2016)论文解读