• Linux fing cd 查找文件/文件夹并进入目录命令


    查找文件|文件夹并进入目录命令:cd $()
    [root@localhost /]# cd $(dirname "`find / -name 'ifcfg-ens33'`") //查找ifcfg-ens33文件并进入该文件所在目录
    [root@localhost network-scripts]#
    [root@localhost /]# mkdir -p /etc/sysconfig/network-scripts/kings-dev
    [root@localhost ~]# cd $(dirname "`find / -name 'kings-dev'`") //查找kings-dev文件夹并进入该文件夹上层目录
    [root@localhost network-scripts]#
    [root@localhost ~]# cd $(find / -name 'kings-dev') //查找kings-dev文件夹并进入该文件夹目录
    [root@localhost kings-dev]#
    [root@localhost src]# du -alh
    1.9M ./redis-5.0.5.tar.gz
    1.9M .
    [root@localhost src]# cd $(dirname `tar -zxvf redis-5.0.5.tar.gz`) //解压redis-5.0.5.tar.gz进入解压目录
    [root@localhost redis-5.0.5]#

    总结
    cd $(dirname "`find / -name '*file or dirname'`") //查找xxxx文件并进入该文件所在目录或文件夹并进入该文件夹上层目录
    cd $(find / -name 'dirname') //查找xxxx文件夹并进入该文件夹目录

    cd $(dirname "`tar -zxvf xxxx.tar.gz`")           //方式1:解压源文件进入解压目录通用

    cd $(dirname `tar -zxvf xxxx.tar.gz`)             //方式2:解压源文件进入解压目录通用

    cd $(dirname "$(tar -zxvf xxxx.tar.gz)")          //方式1-2:解压源文件进入解压目录通用

    cd $(dirname $(tar -zxvf xxxxtar.gz))             //方式2-2:解压源文件进入解压目录通用

    [root@localhost src]# cd $(dirname "`tar -zxvf apache-tomcat-8.5.46.tar.gz`")
    [root@localhost conf]# pwd
    /usr/local/src/apache-tomcat-8.5.46/conf

    [root@localhost src]# cd $(dirname `tar -zxvf apache-tomcat-8.5.46.tar.gz`)
    [root@localhost apache-tomcat-8.5.46]# pwd
    /usr/local/src/apache-tomcat-8.5.46

    [root@localhost src]# cd $(dirname "`tar -zxvf redis-5.0.5.tar.gz`")
    [root@localhost redis-5.0.5]# pwd
    /usr/local/src/redis-5.0.5
    [root@localhost src]# cd $(dirname "`tar -zxvf nginx-1.17.3.tar.gz`")
    [root@localhost nginx-1.17.3]# pwd
    /usr/local/src/nginx-1.17.3
    [root@localhost src]# cd $(dirname "`tar -zxvf libzip-1.5.2.tar.gz`")
    [root@localhost libzip-1.5.2]# pwd
    /usr/local/src/libzip-1.5.2
    [root@localhost src]# tar -zxvf nginx-1.17.3.tar.gz ;cd `basename -s .tar.gz nginx-1.17.3.tar.gz`
    [root@localhost nginx-1.17.3]# pwd
    /usr/local/src/nginx-1.17.3
    [root@localhost src]# cd $(dirname "$(tar -zxvf apache-tomcat-8.5.46.tar.gz)")
    [root@localhost conf]# pwd
    /usr/local/src/apache-tomcat-8.5.46/conf
    [root@localhost src]# cd $(dirname "$(tar -zxvf redis-5.0.5.tar.gz)")
    [root@localhost redis-5.0.5]# pwd
    /usr/local/src/redis-5.0.5

    [root@localhost src]# cd $(dirname $(tar -zxvf apache-tomcat-8.5.46.tar.gz))
    [root@localhost apache-tomcat-8.5.46]# pwd
    /usr/local/src/apache-tomcat-8.5.46

    排除Download.sh和Download_LNMP.sh文件进行统计当前目录文件数:ls -lh;find ./*|grep -v .'file1|file2|file3|...|...|'|wc -l
    [root@localhost src]# ls -lh;find ./*|grep -v 'Down*'|wc -l 
    total 120M
    -rw-r--r-- 1 root root  7.5M Oct  8 04:14 boost_1_71_0.tar.gz
    -rw-r--r-- 1 root root  8.9M Oct  2 10:45 cmake-3.15.4.tar.gz
    -rw-r--r-- 1 root root  1.1K Oct  8 03:57 Download_LNMP.txt
    -rw-r--r-- 1 root root  1.2K Oct  8 03:56 Download.sh
    -rw-r--r-- 1 root root  3.3M Mar 15  2019 freetype-2.10.0.tar.gz
    -rw-r--r-- 1 root root 1005K Mar 27  2018 jpegsrc.v9c.tar.gz
    -rw-r--r-- 1 root root  3.2M Aug 30  2017 libgd-2.2.5.tar.gz
    -rw-r--r-- 1 root root  1.3M Feb 19  2007 libmcrypt-2.5.8.tar.gz
    -rw-r--r-- 1 root root  1.5M Oct  8 03:58 libpng-1.6.37.tar.gz
    -rw-r--r-- 1 root root   47M Oct  8 04:37 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
    -rw-r--r-- 1 root root 1009K Aug 13 13:01 nginx-1.16.1.tar.gz
    -rw-r--r-- 1 root root  7.0M Oct  8 04:25 openssl-1.1.1d.tar.gz
    -rw-r--r-- 1 root root  2.0M Oct  8 03:57 pcre-8.43.tar.gz
    -rw-r--r-- 1 root root   11M Oct  8 04:04 php-7.3.10.tar.gz
    -rw-r--r-- 1 root root  1.8M Oct  8 03:58 t1lib-5.1.2.tar.gz
    -rw-r--r-- 1 root root  2.3M Nov 10  2018 tiff-4.0.10.tar.gz
    -rw-r--r-- 1 root root  2.8M Oct  8 03:59 v1.8.1
    -rw-r--r-- 1 root root  1.5M Aug 11  2014 yasm-1.3.0.tar.gz
    -rw-r--r-- 1 root root  594K Jan 15  2017 zlib-1.2.11.tar.gz
    17
    [root@localhost src]# ls -lh;find ./*|grep -v 'D*.sh|D*.txt'|wc -l
    total 120M
    -rw-r--r-- 1 root root  7.5M Oct  8 04:14 boost_1_71_0.tar.gz
    -rw-r--r-- 1 root root  8.9M Oct  2 10:45 cmake-3.15.4.tar.gz
    -rw-r--r-- 1 root root  1.1K Oct  8 03:57 Download_LNMP.txt
    -rw-r--r-- 1 root root  1.2K Oct  8 03:56 Download.sh
    -rw-r--r-- 1 root root  3.3M Mar 15  2019 freetype-2.10.0.tar.gz
    -rw-r--r-- 1 root root 1005K Mar 27  2018 jpegsrc.v9c.tar.gz
    -rw-r--r-- 1 root root  3.2M Aug 30  2017 libgd-2.2.5.tar.gz
    -rw-r--r-- 1 root root  1.3M Feb 19  2007 libmcrypt-2.5.8.tar.gz
    -rw-r--r-- 1 root root  1.5M Oct  8 03:58 libpng-1.6.37.tar.gz
    -rw-r--r-- 1 root root   47M Oct  8 04:37 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
    -rw-r--r-- 1 root root 1009K Aug 13 13:01 nginx-1.16.1.tar.gz
    -rw-r--r-- 1 root root  7.0M Oct  8 04:25 openssl-1.1.1d.tar.gz
    -rw-r--r-- 1 root root  2.0M Oct  8 03:57 pcre-8.43.tar.gz
    -rw-r--r-- 1 root root   11M Oct  8 04:04 php-7.3.10.tar.gz
    -rw-r--r-- 1 root root  1.8M Oct  8 03:58 t1lib-5.1.2.tar.gz
    -rw-r--r-- 1 root root  2.3M Nov 10  2018 tiff-4.0.10.tar.gz
    -rw-r--r-- 1 root root  2.8M Oct  8 03:59 v1.8.1
    -rw-r--r-- 1 root root  1.5M Aug 11  2014 yasm-1.3.0.tar.gz
    -rw-r--r-- 1 root root  594K Jan 15  2017 zlib-1.2.11.tar.gz
    17
    

      

    -exec CMD:正在搜索的文件符合以上条件,并且返回0作为成功执行命令的退出状态。
    -ok CMD:它与-exec相同,除了首先提示用户。
    -inum N:搜索索引号为“ N”的文件。
    -links N:搜索带有“ N”个链接的文件。
    -name demo:搜索“ demo”指定的文件。
    -newer file:搜索在“文件”之后修改/创建的文件。
    -perm octal:如果权限为“八进制”,则搜索文件。
    -print:显示使用其余条件找到的文件的路径名。
    -empty:搜索空文件和目录。
    -size + N / -N:搜索“ N”个块的文件;“ N”后跟“ c”可用于测量字符大小;'+ N'表示大小>'N'个块,'-N'表示大小<'N'个块。
    -用户名:搜索由用户名或ID“名称”拥有的文件。
    (expr ):如果'expr'为true,则为true; 用于与OR或AND组合的分组条件。
    !expr:如果'expr'为假,则为true。
    
    Find是Unix(或Linux)的功能强大的实用程序之一,用于在目录层次结构中搜索文件。find命令的语法是
    
    查找 [路径名] [条件]
    
    1.如何运行最后执行的find命令?
    
    !find
    
    这将执行最后一个find命令。它还在终端上显示最后执行的find命令以及结果。
    
    2.如何使用名称查找文件?
    
    find -name "sum.java"
    ./bkp/sum.java
    ./sum.java
    
    这将在当前目录和子目录中找到所有名称为“ sum.java”的文件。
    
    3.如何使用名称和忽略大小写查找文件?
    
    find -iname "sum.java"
    ./SUM.java
    ./bkp/sum.java
    ./sum.java
    
    这将查找名称为“ sum.java”的所有文件,而忽略当前目录和子目录中的大小写。
    
    4.如何仅在当前目录中查找文件?
    
    find -maxdepth 1 -name "sum.java"
    ./sum.java
    
    这将仅在当前目录中找到文件“ sum.java” 
    
    5.如何查找名称中包含特定单词的文件?
    
    find -name "*java*"
    ./SUM.java
    ./bkp/sum.java
    ./sum.java
    ./multiply.java
    
    它显示了文件名
    
    6.中所有带有单词“ java”的文件。如何在特定目录中查找文件?
    
    find /etc -name "*java*"
    
    这将在/ etc目录中的文件名中查找带有“ java”的文件。
    
    7.如何查找名称不是“ sum.java”的文件?
    
    find -not -name "sum.java"
    .
    ./SUM.java
    ./bkp
    ./multiply.java
    
    这就像反转比赛一样。它将打印除给定文件“ sum.java”以外的所有文件。
    
    8.如何将文件搜索限制为特定目录?
    
    find -name "sum.java"
    ./tmp/sum.java
    ./bkp/var/tmp/files/sum.java
    ./bkp/var/tmp/sum.java
    ./bkp/var/sum.java
    ./bkp/sum.java
    ./sum.java
    
    您可以在这里看到find命令在当前目录和子目录中显示了所有名称为“ sum.java”的文件。
    
    a.如何打印当前目录中的文件并向下一级打印到当前目录?
    
    find -maxdepth 2 -name "sum.java"
    ./tmp/sum.java
    ./bkp/sum.java
    ./sum.java
    
    b.如何打印当前目录中的文件以及向下两级打印到当前目录?
    
    find -maxdepth 3 -name "sum.java"
    ./tmp/sum.java
    ./bkp/var/sum.java
    ./bkp/sum.java
    ./sum.java
    
    c.如何在1级和4级之间的子目录中打印文件?
    
    find -mindepth 2 -maxdepth 5 -name "sum.java"
    ./tmp/sum.java
    ./bkp/var/tmp/files/sum.java
    ./bkp/var/tmp/sum.java
    ./bkp/var/sum.java
    ./bkp/sum.java
    
    9.如何在目录中查找空文件?
    
    find . -maxdepth 1 -empty
    ./empty_file
    
    10.如何在当前目录和子目录中查找最大的文件
    
    find . -type f -exec ls -s {} ; | sort -n -r | head -1
    
    查找命令“查找。-type f -exec ls -s {} ;” 将列出所有文件以及文件的大小。然后,sort命令将根据大小对文件进行排序。head命令将仅从sort输出中选择第一行。
    
    11.如何在当前目录和子目录中查找最小的文件
    
    find . -type f -exec ls -s {} ; | sort -n -r | tail -1
    
    使用find的另一种方法是
    
    find . -type f -exec ls -s {} ; | sort -n  | head -1
    
    12.如何根据文件类型查找文件?
    
    a.查找套接字文件
    
    find . -type s
    
    b.查找目录
    
    find . -type d
    
    C.查找隐藏目录
    
    find -type d -name ".*"
    
    d.查找常规文件
    
    find . -type f
    
    e.查找隐藏文件
    
    find . -type f -name ".*"
    
    13.如何根据大小查找文件?
    
    a.查找大小恰好为10M的文件
    
    find . -size 10M
    
    B.查找大于10M的文件
    
    find . -size +10M
    
    C.查找小于10M的文件
    
    find . -size -10M
    
    14.如何查找在给定文件修改后被修改的文件。
    
    find -newer "sum.java"
    
    15.这将显示在文件“ sum.java”之后修改的所有文件。15 
    
    find -anewer "sum.java"
    
    16.显示修改给定文件后更改的文件。
    
    find -cnewer "sum.java"
    
    17.如何根据文件权限查找文件?
    
    find . -perm 777
    
    这将显示具有读取,写入和执行权限的文件。要了解文件和目录的权限,请使用命令“ ls -l”。
    
    18.查找在30分钟内修改的文件。
    
    find . -mmin -30
    
    19.查找在1天内修改的文件。
    
    find . -mtime -1
    
    20. 30分钟后如何找到被修改的文件
    
    find . -not -mmin -30
    
    21.如何找到1天后修改的文件。
    
    find . -not -mtime -1
    
    22.打印在1小时内访问的文件。
    
    find . -amin -60
    
    23.打印在1天内访问的文件。
    
    find . -atime -1
    
    24.显示在2小时内更改的文件。
    
    find . -cmin -120
    
    25.显示2天内更改的文件。
    
    find . -ctime -2
    
    26.如何查找在两个文件之间创建的文件。
    
    find . -cnewer f1 -and ! -cnewer f2
    
    到目前为止,我们仅找到文件并显示在终端上。现在,我们将看到如何对文件执行一些操作。
    
    1.如何查找包含名称“ java”的文件的权限?
    
    find -name "*java*"|xargs ls -l
    
    替代方法是
    
    find -name "*java*" -exec ls -l {} ;
    
    2.查找其中名称为“ java”的文件,然后仅显示其中包含“类”字的文件?
    
    find -name "*java*" -exec grep -H class {} ;
    
    3.如何删除包含名称“ java”的文件。
    
    find -name "*java*" -exec rm -r {} ;
    
    参考连接:
    https://www.folkstalk.com/2011/12/101-examples-of-using-find-command-in.html
  • 相关阅读:
    Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
    java中的URLEncoder.encode对应JS中用decodeURIComponent,js和java编码,解码
    SQL触发器(AFTER和INSTEAD OF)
    jquery对中文进行base64加密,后台用java进行base64解密
    org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [WebApp] in context with path关于数据库库的问题
    Mybatis-Plus代码生成器
    Swagger2-注解说明
    Maven详细配置
    JDK环境变量配置
    内存泄漏测试
  • 原文地址:https://www.cnblogs.com/huixst/p/11595986.html
Copyright © 2020-2023  润新知