2009年3月13日 星期五

Linux: 列出目錄及檔案數量

Linux: 列出目錄及檔案數量

用 ls 指令會列出目錄下的內容,如果想知道目錄下有多少檔案及多少目錄,可以輸入以下指令:

顯示檔案數目:
ls -la |grep "^-" |awk ‘END {print "Number of files: " NR}’

顯示目錄數目:
ls -la |grep “^d” |awk ‘END {print "Number of directories: " NR}’




[root@mail /]# ls -la |grep "^-" |awk 'END {print "Number of files:" NR}'
Number of files:5
You have new mail in /var/spool/mail/root
[root@mail /]# ls -la home |grep "^-" |awk 'END {print "Number of files:" NR}'
Number of files:2
[root@mail /]# ls -la home |grep "^d" |awk 'END {print "Number of files:" NR}'
Number of files:526

2009年3月10日 星期二

[轉貼]解决 umount時出現的 “Device is busy”

原文: http://www.linuxgem.org/tip/use-fuser-rescue-device-is-busy.html

引言:

在Linux下umount掛載的硬碟或者隨身碟的時候,經常會出現“Device is busy”的提示,哦~真讓人惱火,在Windows下的那個無法卸載移動設備的問題,竟然也竄到了Linux下……

其實,錯誤不在WIndows也不在Linux,無法卸載移動設備的原因,是因為系統中還有程序在霸佔著移動設備上的文件,如果冒然強制卸載,可能會導致數據遺失和設備損壞,“Device is busy”是一種保護措施。

既然知道是有程序霸佔,找出這個程序再處理一下就好了。 fuser這個小程序可以派上用場,基本上每個發行版都會帶有fuser這個工具。

fuser可以顯示出當前哪個程序在使用磁盤上的某個文件、掛載點、甚至網路端口,並給出程序進程的詳細訊息。

假設無法卸載的設備為/media/USB,運行下列命令即可:
$ fuser -m -v /media/USB/
用戶進程號權限命令
/media/BAK/: galeki 335 ..c.. gqview

-m 參數顯示所有使用指定文件系統的進程,後面可以跟掛載點,或是dev設備( Thanks lisir :),-v參數給出詳細的輸出,可以看出,原來是gqview這個程序還在霸占著移動設備,fuser還給出了程序的進程號,知道了進程號,你就可以隨便怎麼處置這個程序了。

另外你也可以添加一個-k參數:
fuser -m -k /media/USB/

這招自動把霸佔著/media/USB/的程序殺死。如果你不是很明確是否要殺死所有霸佔設備的程序,你還可以加一個-i參數,這樣每殺死一個程序前,都會詢問:
$ fuser -m -v -i -k /media/BAK/
用戶進程號權限命令
/media/BAK/: galeki 371 ..c.. gqview
殺死進程371 ? (y/N)

很順利的解決了“Device is busy”的問題~

Windows Server AD dsquery (查詢指令)

Windows Server  AD  dsquery     ( 查詢指令 ) 通用的參數:    -limit 0   指定傳回符合搜尋條件的物件數目,如果值是 0 ,將傳回所有符合的物件。 如果不指定此參數,根據預設將只顯示前 100 個結果。 ...