- find –maxdepth -mindepth 結合tree來精確查找最大和最小目錄搜索深度
- 在當前目錄下建立三個文件夾,互為父子關系
mkdir -p a/b/c
- 分別在a,b,c三個文件夾下隨機建立三個文件,最終的結果如下:
[root@CentOS6 findtest#]tree
└── a
├── b
│?? ├── c
│?? │?? ├── f7.log
│?? │?? ├── f8.log
│?? │?? └── f9.log
│?? ├── f4
│?? ├── f5
│?? └── f6
├── f1.txt
├── f2.txt
└── f3.txt
3 directories, 9 files
從tree顯示中,a目錄是第一級,b目錄以及a目錄下的三個文件f1.txt,f2.txt,f3.txt為第二級,c目錄和b目錄下的三個文件f4,f5,f6為第三級,c目錄下的三個文件f7.log,f8.log,f9.log為第四級。
- find –maxdepth 3:結果能查到除c目錄下三個文件之外的所有文件及文件夾
./a
./a/f2.txt
./a/f1.txt
./a/b
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
./a/f3.txt
- find -maxdepth 3 -mindepth 2:結果能查到第二級和第三級包含的所有文件及文件夾
./a/f2.txt
./a/f1.txt
./a/b
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
./a/f3.txt
- find -maxdepth 3 -mindepth 3:結果只能查到第三級包含的所有文件及文件夾
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
- find size 結合圖
如圖所示:
find -size n的范圍:n-1 < file <= n
find -size -n的范圍:0 <= file <= n-1
find -size +n的范圍:n< file < 無窮大
測試:
- 創建兩個文件,分別為1023,1024byte
dd if=/dev/zero of=/data/filesizetest/f1 bs=1 count=1024
dd if=/dev/zero of=/data/filesizetest/f2 bs=1 count=1023
- 搜索條件 find /data/filesizetest/ -size 1k
/data/filesizetest/f2
/data/filesizetest/f1
- 搜索條件 find /data/filesizetest/ -size 1024c
/data/filesizetest/f1
- 搜索條件find /data/filesizetest/ -size -1024c
/data/filesizetest/f2
- 搜索條件find /data/filesizetest/ -size -1k
結果為空
- 搜索條件find /data/filesizetest/ -size +1k
結果為空
同理,find當查找條件為時間戳時,即find -atime, find -mtime, find -ctime時,也存在和以文件大小為查找條件時,只是算法有不同,以天為單位:
find -aime 1,表示查找 <= 1天 atime < 2 天的文件
find -atime +1,表示查找 2天 <= atime 天的文件
find -atime -1,表示查找 ????atime < 1天的文件
- 批量打包用法
打包工具tar配合-T -X選項可以同時實現批量打包并且選擇要排除的文件列表(包括目錄和文件)
-T 指定輸入文件
-X 指定包含要排除的文件列表
需求:同時打包/etc /var兩個目錄并表排除/etc/sane.d/目錄下的文件
步驟:
- 創建includefilelist,內容為
/etc/
/var/
- 創建excludefilelist,內容為
/etc/sane.d
- tar zcvf mybackup.tar -T includefilelist -X excludefilelist
- tar -tf mybackup.tar,包括了/etc/ /var兩個目錄,同時排除了/etc/sane.d/的文件及目錄
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96223