1.找出/tmp目錄下,屬主不是root,且文件名不以f開頭的文件
find /tmp -type f ! -user root ! -name 'f*'
find /tmp -type f ! -user root -name '[^f]'
find /tmp -type f ! -user root ! -name 'f*'
find /tmp -type f ! -user root -name '[^f]'
2.查找/etc/目錄下,所有.conf后綴的文件
find /etc/ -type f -name '*.conf'
3.查找/var目錄下屬主為root,且屬組為mail的所有文件
find /var -type f -user root -group mail
find /var -type f -user root -group mail
4.查找/var目錄下7天以前,同時屬主不為root,也不是postfix的文件
find /var -type f ! \( -user root -o -user postfix \) -mtime +7
5.查找/etc目錄下大於1M且類型為普通文件的所有文件
find /etc -type f -size +1M
find /etc -type f -size +1M
6.查找/etc目錄下所有用戶都沒有寫權限的文件
find /etc -type f ! -perm /222
find /etc -type f ! -perm /222
7.查找/目錄下最后創建時間是3天前,后綴是*.log的文件
find / -mtime +3 -type f -name '*.log'
8.查找/目錄下文件名包含txt的文件
find / -type f -name '*txt*'
find / -type f -name '*txt*'
9.查找/目錄下屬主是oldboy並且屬組是oldboy的文件
find / -type f -user oldboy -group oldboy
10.查找/目錄下屬主是oldboy但是屬組不是oldboy的文件
find / -type f -user oldboy ! -group oldboy
find / -type f -user oldboy ! -group oldboy
11.查找/目錄下屬主是oldboy或者屬主是oldgirl的文件
find / -type f \( -user oldboy -o -user oldgirl \)
find / -type f \( -user oldboy -o -user oldgirl \)
12.查找/tmp目錄下屬主既不是oldboy,也不是oldgirl的文件
find /tmp -type f ! -user oldboy ! -user oldgirl
find /tmp -type f ! -user oldboy ! -user oldgirl
13.查找/var/log目錄下7天以前的文件
find /var/log -type f -mtime +7
find /var/log -type f -mtime +7
14.查找/tmp目錄下15天以前的文件刪除
find /tmp -type f -mtime +15 -delete
find /tmp -type f -mtime +15 | xargs rm -rf
find /tmp -type f -mtime +15 -exec rm -rf {} \;
rm -rf $( find /tmp -type f -mtime +15 )
rm -rf ` find /tmp -type f -mtime +15 `
find /tmp -type f -mtime +15 -delete
find /tmp -type f -mtime +15 | xargs rm -rf
find /tmp -type f -mtime +15 -exec rm -rf {} \;
rm -rf $( find /tmp -type f -mtime +15 )
rm -rf ` find /tmp -type f -mtime +15 `
15.查找/home目錄下,類型是目錄的,並且屬主是oldboy的目錄
find /home -type d -user oldboy
16.查找/var/log下大於100kb且以log結尾的所有文件
find /var/log -type f -size +100k -name '*log'
find /var/log -type f -size +100k -name '*log'
17.查找tmp目錄下所屬組group1,所屬主user1的目錄
find /tmp -type d -user user1 -group group1
find /tmp -type d -user user1 -group group1
18.同時查找根目錄下名為1.txt,2.txt的文件和名字帶a的目錄
find / \( -type f -name '[12].txt' -o -type d -name '*a*' \)
find / \( -type f -name '[12].txt' -o -type d -name '*a*' \)
19.查找/tmp目錄下所有文件並刪除
find /tmp -type f -delete
20.查找/etc目錄下至少有一類用戶沒有寫權限的文件
find /etc -type f ! -perm -222
find /etc -type f ! -perm -222
21.查找/var目錄下不屬於root、lp、gdm的所有文件
find /var -type f ! \( -user root -o -user lp -o -user gdm \)
find /var -type f ! \( -user root -o -user lp -o -user gdm \)
22.將/etc/中的所有目錄(僅目錄)復制到/tmp下,目錄結構不變
find /etc -type d -exec mkdir -p /opt/{} \;
find /etc/ -type d | xargs -I {} mkdir -p /tmp/{}
find /etc -type d -exec mkdir -p /opt/{} \;
find /etc/ -type d | xargs -I {} mkdir -p /tmp/{}
23.將/etc目錄復制到/var/tmp/,/var/tmp/etc的所有目錄權限777/var/tmp/etc目錄中所有文件權限666
cp -a /etc /var/tmp
find /var/tmp/etc -type d -exes chmod 777 {} \;
find /var/tmp/etc -type f -exec chmod 666 {} \;
cp -a /etc /var/tmp
find /var/tmp/etc -type d -exes chmod 777 {} \;
find /var/tmp/etc -type f -exec chmod 666 {} \;
24.保留/var/log/下最近7天的日志文件,其他全部刪除
find /var/log -mtime +7 -delete
find /var/log ! -mtime -7 -delete
find /var/log -mtime +7 -delete
find /var/log ! -mtime -7 -delete
25.創建touch file{1..10}10個文件, 保留file9,其他一次全部刪除
find /root -type f ! -name 'file9' -delete
find /root -type f -name 'file[^9]*' -delete
find /root -type f ! -name 'file9' -delete
find /root -type f -name 'file[^9]*' -delete
26.解釋如下每條命令含義
mkdir /root/dir1 #在root目錄下創建dir1目錄
touch /root/dir1/file{1..10} #在dir1目錄下創建file1~file10 10個文件
find /root/dir1 -type f -name "file5" #查找dir1目錄下的file5文件
find /root/dir1 ! -name "file5" #查找dir1目錄下不是file5的文件或目錄
find /root/dir1 -name "file5" -o -name "file9" #查找dir1目錄下file5或file9的文件或目錄
mkdir /root/dir1 #在root目錄下創建dir1目錄
touch /root/dir1/file{1..10} #在dir1目錄下創建file1~file10 10個文件
find /root/dir1 -type f -name "file5" #查找dir1目錄下的file5文件
find /root/dir1 ! -name "file5" #查找dir1目錄下不是file5的文件或目錄
find /root/dir1 -name "file5" -o -name "file9" #查找dir1目錄下file5或file9的文件或目錄
find /root/dir1 -name "file5" -o -name "file9" -ls #錯誤寫法
find /root/dir1 \( -name "file5" -o -name "file9" \) -ls #查找dir1目錄下file5或file9的文件或目錄並以長格式顯示
find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \; #查找dir1目錄下file5或file9的文件或目錄並刪除
find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \; #查找dir1目錄下不是file5或file9的文件或目錄並刪除
