国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【Linux學(xué)習(xí)筆記】文件的尋找 - Elderzhang's Blog! - JavaEye技術(shù)網(wǎng)站

http://www.blogjava.net/pengpenglin/archive/2008/12/22/247831.html

 

【1.which命令】


which命令用于在系統(tǒng)變量PATH下所指定的路徑中查找文件,因為PATH下一般存放的是可執(zhí)行文件(二進制文件),所以which命令通常用來查找可執(zhí)行文件。

由于不同的用戶其PATH變量的設(shè)置不同,所以不同的用戶執(zhí)行同樣的which命令,得到的結(jié)果有可能不同。

Example 1:以root用戶身份執(zhí)行which ifconfig

 

[root@localhost ~]# which ifconfig
/sbin/ifconfig
[root@localhost ~]
# echo $PATH
/usr/sbin:/u01/app/oracle/product/
10.2.0/db_1/bin:/u01/app/oracle/product/10.2.0/db_1/bin:/u01/app/oracle/product/10.2.0
/db_1/Apache/Apache/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin


Example 2:以paul用戶身份執(zhí)行which ifconfig

可以看到,由于root用戶和paul用戶的PATH變量的設(shè)置不同,而ifconfig命令由僅存在于sbin目錄下,所以paul用戶執(zhí)行which ifconfig時找不到該命令

【2.whereis和locate命令】

 

 

[root@localhost ~]
# whereis mount
mount: /bin/mount /sbin/mount.cifs /sbin/mount.vmhgfs /sbin/mount.smbfs /sbin/mount.smb /usr/share/man/man8/mount
.8.gz /usr/share/man/man2/mount.2
.gz
You have new mail in /var/spool/mail/root
[root@localhost ~]
# whereis -b mount
mount: /bin/mount /sbin/mount.cifs /sbin/mount.vmhgfs /sbin/mount.smbfs /sbin/mount.smb
[root@localhost ~]#


Example 2:使用paul用戶身份查找名為mount的文件

[paul@localhost ~]
$ whereis mount
mount: /bin/mount /sbin/mount.cifs /sbin/mount.vmhgfs /sbin/mount.smbfs /sbin/mount.smb /usr/share/man/man8/mount
.8.gz /usr/share/man/man2/mount.2
.gz
[paul@localhost ~]
$ whereis -b mount
mount: /bin/mount /sbin/mount.cifs /sbin/mount.vmhgfs /sbin/mount.smbfs /sbin/mount.smb
[paul@localhost ~]$


我們看到,不論是以root身份還是以paul身份,whereis命令都可以找到名為mount的命令,而且搜索的結(jié)果中既包含了位于PATH變量指定的路徑下,也包含了其它不在PATH變量中指定路徑下的文件。

其次我們看到如果加上-b參數(shù),搜索結(jié)果會不一樣。這是因為-b參數(shù)是用于搜索二進制文件的(即可執(zhí)行文件)。所以我們也可以用-b參數(shù)來縮小搜索結(jié)果范圍

Example 3:使用locate命令來查找mount文件

[root@localhost~]#locate mount
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or directory
warning: You need to run the 'updatedb' command (as root) to create the database.
Please have a look at /etc/updatedb.conf to enable the daily cron job.


很奇怪,系統(tǒng)居然提升我們找不到一個名為/var/lib/slocate/slocate.db的東東,而且要我們先執(zhí)行一個updatedb的命令!這是為什么?

原因是因為locate命令的查找機制不是直接從硬盤中逐個搜索,比較文件。而是去搜索一個類似于“目錄索引”的文件,該文件就像書的目錄一樣指向硬盤上的各個文件。

那么該索引文件又是哪里來的?答案就是通過updatedb創(chuàng)建,該命令會讀取/etc/updatedb.conf文件,確定該索引文件的創(chuàng)建,更新機制。見下圖

[root@localhost ~]# cat /etc/updatedb.conf
# To enable the updatedb in cron
, set DAILY_UPDATE to yes
DAILY_UPDATE=no


如果我們把no改成yes,那么Linux就會每天更新一次該索引文件(其實就是前面提到的那個db文件)。如果我們不更新呢?那么會出現(xiàn)下面兩種可能
 ①已刪除的過時文件會被搜索到
 ②新創(chuàng)建的文件不能被搜索到

這一切都是因為索引文件過時導(dǎo)致的,所以我們可以設(shè)置DAILY_UPDATE=yes

【3.find命令】


find命令和wheris命令以及l(fā)ocate命令,它是老老實實地去硬盤上找文件,所以速度比起前兩者來說慢了很多。不過find命令有很多非常好用的參數(shù)。下面列出來:

 ①-mtime n:  列出在n天之前的“一天之內(nèi)”被更動過的文件
 ②-mtime +n:列出在n天之前(不含n天本身)被更動過的文件
 ③-mtime -n:列出n天之內(nèi)(含n天本身)被更動過的文件
 ④-newer file:列出比文件file還要新的文件名
 ⑤-user name:列出屬于該用戶的文件
 ⑥-group name:列出屬于該用戶組的文件
 ⑦-nouser:列出不屬于/etc/passwd中定義的用戶的文件
 ⑧-nogroup:列出不屬于/etc/group中定義的用戶組的文件
 ⑨-name filename:列出文件名為指定名稱的所有文件
 ⑩-size +/- size:搜索比指定size還要大/小的文件。c表示byte,K表示Kb
 ⑾-type type:搜索指定類型文件。普通文件(f),配置文件(b,c),目錄(d),鏈接文件(l),socket(s),管道(p)
 ⑿-exec command:在搜索的結(jié)果上執(zhí)行指定的命令
 ⒀-print:將搜索的結(jié)果顯示在屏幕上

<-----(+n)--------n-----(-n)-----當(dāng)前時間

如我們想找出24小說被改動過的文件

[root@localhost ~]# find / -mtime 0


參數(shù)0是什么意思呢?其實0表示當(dāng)前時間,那么命令的意思就是當(dāng)前時間的24小時內(nèi)。

Example 1:找出3天內(nèi)被更動過的文件

[root@localhost ~]# find -mtime -3


我們看到find命令可以不用指定路徑,而僅僅指定搜索的時間起始點。我們同樣也可以指定查找的路徑

Example 2:找出paul用戶home目錄下4天前被更動的文件

[root@localhost ~]# find /home/paul -mtime +4
/home/paul/.bash_profile
/home/paul/.gtkrc
/home/paul/.emacs
/home/paul/.zshrc
/home/paul/.bash_logout
/home/paul/.bashrc


Example 3:找出/home目錄下屬于paul用戶的文件

[root@localhost ~]# find /home -user paul
/home/paul
/home/paul/.bash_profile
/home/paul/.gtkrc
/home/paul/.emacs
/home/paul/.zshrc
/home/paul/.bash_logout
/home/paul/.bash_history
/home/paul/.bashrc
[root@localhost ~]#


通過該命令我們可以輕松地找出所有我們想要的某個特定用戶創(chuàng)建或擁有的文件。如果我們對某些文件比較懷疑(不明用戶的文件),我們可以使用-nouser/-nogroup參數(shù)來搜索這些可疑文件

[root@localhost ~]# find / -nouser
find: /proc/
4369/task/4369/fd/4: 沒有那個文件或目錄
[root@localhost ~]#


Example 4:找出名為passwd的文件

[root@localhost ~]# find / -name passwd
/etc/pam.d/passwd
/etc/passwd


Example 5:找出大于1M的文件

[
root@localhost ~]# find / -size +1000k
/sbin/lvm.static
/etc/gconf/schemas/metacity.schemas
/etc/gconf/schemas/apps_nautilus_preferences.schemas
/etc/gconf/schemas/gnome-terminal.schemas
/usr/sbin/winbindd
/usr/X11R6/lib/X11/doc/PostScript/XKBlib.ps
/usr/X11R6/lib/X11/doc/PostScript/dtprint_fspec.ps
/usr/X11R6/lib/libOSMesa.so
.4.0


Example 6:找出類型為socket的文件

[root@localhost ~]# find /var -type s
/var/run/iiim/.iiimp-unix/
9010
/var/run/dbus/system_bus_socket
/var/run/acpid.socket
/var/tmp/.oracle/sEXTPROC1
/var/tmp/.oracle/s#
6145.2
/var/tmp/.oracle/s#
6145.1
[root@localhost ~]#


Example 7:找出/home目錄下用戶paul的文件并顯示詳細屬性

[root@localhost ~]# find /home -user paul -exec ls -l {} \;
總用量 0
-rw-r--r--  
1 paul paul 191 11月 22 23:19 /home/paul/.bash_profile
-rw-r--r--  
1 paul paul 120 11月 22 23:19 /home/paul/.gtkrc
-rw-r--r--  
1 paul paul 383 11月 22 23:19 /home/paul/.emacs
-rw-r--r--  
1 paul paul 658 11月 22 23:19 /home/paul/.zshrc
-rw-r--r--  
1 paul paul 304 11月 22 23:19 /home/paul/.bash_logout
-rw-------  
1 paul paul 300 12月 23 23:37 /home/paul/.bash_history
-rw-r--r--  
1 paul paul 124 11月 22 23:19 /home/paul/.bashrc
[root@localhost ~]#


上面的例子中,我們使用-exec參數(shù),將搜索的結(jié)果放到{}中(其實這個位置就是平時我們使用ls命令的目錄參數(shù)的位置嘛),至于\;則是轉(zhuǎn)義字符,用來表示命令已經(jīng)結(jié)束。由于;有特殊意義所以需要加斜杠來轉(zhuǎn)義。

Example 8:使用通配符查找所有包含config的文件

[root@localhost ~]# find / -name *config -exec ls -l {} \;
-rwxr-xr-x  1 root root 9824 2004-09-27  /sbin/vconfig
-rwxr-xr-x  
1 root root 570048 2004-12-20  /sbin/ldconfig
-rwxr-xr-x  
1 root root 56204 2004-09-30  /sbin/ifconfig
-rwxr-xr-x  
1 root root 23600 2004-11-30  /sbin/iwconfig
-rwxr-xr-x  
1 root root 41136 2004-10-29  /sbin/chkconfig
-rwxr-xr-x  
1 root root 6608 2004-09-30  /sbin/plipconfig
-rw-r--r--  
1 root root 1196 2004-10-21  /etc/X11/xdm/xdm-config
總用量 
0
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
淺談linux中的根文件系統(tǒng)(rootfs的原理和介紹)
sudo與su的用法
linux kill用法、killall、pkill、xkill
cramfs+yaffs2文件系統(tǒng)制作
用BusyBox制作Linux根文件系統(tǒng)
關(guān)于su和sudo以及visudo的很好的介紹性文檔
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服