zoukankan      html  css  js  c++  java
  • Linux命令之find

    find是一个使用非常频繁的命令。

    // 查找所有txt文件
    find . -name "*.txt"
    find . -name "*.txt" -ls
    // 查找所有txt文件和sh文件
    find . -name "*.txt" -o -name "*.sh"
    // 查找所有txt文件(搜索目标为文件)
    find . -type f -name "*.txt"
    // 查找所有目录
    find . -type d
    // 仅在当前目录和二级目录查找所有目录
    find . -maxdepth 2 -type d
    // 查找所有大小为0的文件并删除
    find . -type f -size 0 -delete
    // 跳过指定目录
    find . -path ./baddir -prune -o -name "*.txt" -print
    find . -type d ( -path dir1 -o -path dir2 -o -path dir3 ) -prune -o -name "*.txt" -print
    find -name "*.js" -not -path "./directory/*"

    基于文件时间的查找

    Linux下的每个文件有三种时间戳

    • atime,access time
    • mtime,modify time, 文件内容的修改
    • ctime,change time,文件权限或属性的修改

    find的一个重要参数:

    // 查找修改时间在指定日期之后的文件
    find . -type f -name "*.txt" -newermt 2017-08-02
    find . -type f -name "*.txt" -newermt "2017-08-02 12:00:00" 
    // 查找修改时间在指定日期之前的文件
    find . -type f -name "*.txt" ! -newermt 2017-08-02
    // 查找在指定日期修改的文件
    find . -type f -name "*.txt" -newermt 2017-08-02 ! -newermt 2017-08-03

    -exec

    // 删除所有大小为0的文件
    find . -type f -size 0 -exec rm {} ;

    对于每个匹配的文件,{}会被替换成相应的文件名,后面的 ; 要带上。

    -xargs

    xargs能够将标准输入数据转换成命令行参数。

    // 删除所有大小为0的文件
    find . -name "*.txt" -print0 | xargs -0 rm -f
    // 查找所有的txt和sh文件,结果按修改时间排序
    find . ( -name "*.txt" -o -name "*.sh" ) -print0 | xargs -0 ls -lt

    ls的-t参数,sort by modification time, newest first

    批量修改文件名

    #!/bin/bash
    
    filenames=($(find . -maxdepth 1 -name "*.txt"))
    
    for (( i = 0; i < ${#filenames[@]}; i++ ))
    do
        newname=$(printf 2017-08-02-%03d.txt $i)
        echo "rename ${filenames[$i]} to ${newname} ..."
        mv ${filenames[$i]} $newname
    done
    
    echo "done"

    参考资料:

    Exclude directory from find . command

  • 相关阅读:
    react-redux不完全指北
    ztext简单的介绍
    svg配合css多变形
    微服务异常感知与快速定位排错
    K8S(rancher) 服务(POD)定时重启服务方案
    记一次简单的微服务项目拆分
    K8S(rancher)Nginx Ingress Controller 负载均衡多路径问题解决方案
    15个必须知道的JavaScript数组方法
    python实现视频分帧
    python实现随机复制若干个文件到新目录
  • 原文地址:https://www.cnblogs.com/gattaca/p/7272163.html
Copyright © 2011-2022 走看看