查找文件|文件夾並進入目錄命令: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