Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Bash——Shell使用笔记


显示目录占用空间大小

  • 显示第一层目录大小(人类可读格式,如 M/G)

    1
    du -sh */
    • 命令解释:
      • du:统计当前目录下的第一级下,所有子目录/文件的磁盘占用;
      • -s(--summarize):只显示总大小(不列出子文件/子目录的详细大小);
      • -h(--human-readable):用人类易读的单位(K/M/G)显示;
      • */:通配符,只匹配当前目录下的「第一层子目录」(结尾的 / 是关键,排除文件,只选目录);
    • 这个命令 Mac 也可以使用
    • 在 Linux 里面,这个命令的等价命令是 du -h ./ --max-depth=1
  • 显示当前目录大小(人类可读格式,如 M/G)

    1
    du -sh ./
    • 命令解释:
      • du:统计当前目录的总磁盘占用
      • -s(--summarize):只显示总大小(不列出子文件/子目录的详细大小);
      • -h(--human-readable):用人类易读的单位(K/M/G)显示;
      • ./:只匹配当前目录
  • 显示当前目录下,指定层级的目录磁盘占用情况

    1
    2
    # 以最大 2 级子文件夹为例(包括第一级)
    du -h ./ --max-depth=2
    • 命令解释:
      • du:统计当前目录下的第一级下,所有子目录/文件的磁盘占用;
      • -h(--human-readable):用人类易读的单位(K/M/G)显示;
      • ./:只匹配当前目录
      • --max-depth=2:最深到两级目录

递归删除某个文件夹下的某个名称文件

  • 假设目标文件夹是 /path/to/dir

  • 在执行删除前,先用 -print 检查匹配结果,确保不会误删:

    1
    find /path/to/dir -type f -name "xxx.pt" -print
    • find:递归查找文件
    • /path/to/dir:替换为你的目标目录路径
    • -type f:只匹配普通文件
    • -name "xxx.pt":匹配文件名为 xxx.pt
    • -print:输出匹配结果
  • 删除上述匹配的文件:

    1
    find /path/to/dir -type f -name "xxx.pt" -delete
    • -delete:直接删除匹配到的文件
  • 补充:如果需要匹配所有以 .pt 结尾的文件(比如 model.pt、xxx.pt 等),可以这样写:

    1
    find /path/to/dir -type f -name "*.pt" -delete

搜索符合预期规则的文件并合并

  • 以合并前缀相同的 .jsonl 文件为例:

    1
    ls -1 /user/prefix_* | grep -E "/user/prefix_[0-9]+\.jsonl" | sort -V | xargs cat > path_to_output
    • 单独使用 ls -1 /user/prefix_* | grep -E "/user/prefix_[0-9]+\.jsonl" | sort -V 可以按照顺序打印文件名称
    • 如果不需要排序可以删除 sort -V 参数

Bash——awk和xargs命令的使用

用于在linux bash中设计处理terminal输出自动删除等问题


使用实例

  • 示例:下面的代码是删除所有名字为<none>的docker镜像
    1
    sudo docker images | grep '<none>' | awk '{print $3}' | xargs sudo docker rmi

awk

  • 示例:读取每一行的第三列的值
    1
    awk '{print $3}'

xargs

  • 示例:将管道传递过来的所有行添加到后面的命令后面,等价于sudo docker rmi <rows>
    1
    xargs sudo docker rmi
1…345346347…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4