2013年2月4日 星期一

Linux 檔名包含特殊符號或是空白的檔案、目錄夾,也可搜尋出來直接刪除。

Linux 檔名包含特殊符號或是空白的檔案、目錄夾,也可搜尋出來直接刪除。

緣起,又是抓片子的時候遇到的問題之一,老手都知道片子100%的時候,目錄底下絕對不會只有avi和jpg而已,都會夾雜一些蝦密*.mht *.chm *.url *.txt之類的垃圾檔案,一個個刪除絕對是笨蛋的行為(我做了好幾年的笨蛋 = =")。

那有什麼指令可以把要刪除的檔案一次清光光呢?  這時候真的會覺得Linux真的很好用。
如果用土法煉鋼的 rm 指令保證會吐血,因為很多的檔名都不是只有英文+數字而已,有的還會夾雜其它的奇怪符號,或是最討厭的空白,這時候你就會很度濫。


那怎麼辦呢? 粉簡單,只要打一串指令就搞定!

linux@linux:/$ find -name "*.mht" -exec rm -rf {} \;

-exec 是代表搜尋完的結果交給後面執行的程式。
rm -rf 是強制刪除目錄夾(包含底下裡面的檔案)不過問。
{} 是代表搜尋結果的內容,這個可以做很多變化,例如原本 rm 指令改用 mv 就變的可以更改檔名。
 \; 是代表指令結束,這個一定要加在最後,不加的話執行會錯誤。


而上面指令的"*.mht"可以更改成你要的檔案類型,如以下所示:

"*.jpg" 搜尋所有附檔名是小寫的jpg檔案並且刪除。
"*.[jJ][pP][gG]" 搜尋所有附檔名是jpg檔案,不論大小寫並且刪除。
"abc*" 搜尋abc檔名開頭的所有檔案並且刪除。
"abc*.jpg" 搜尋abc檔名開頭的jpg檔案並且刪除。
"*abc*" 搜尋檔名中間有abc的檔案並且刪除。
"*abc*.jpg" 搜尋檔名中間有abc的jpg檔案並且刪除。


以上的範例還有一個小問題,如果想要搜尋的檔名很長而且也不知道大小寫的時候,那可就麻煩了。

例如: "sdhGSDvassdrfhDDFFsklklsddD" 這種整人的檔名就很GY阿,可是真的要找到它難道要像上面寫的一樣,每個字都要入大小寫才能嗎? no no no,科技始終來自於人性,人性來自於惰性,作者早就想到了啦!!!

linux@linux:/$ find -iname "sdhGSDvassdrfhDDFFsklklsddD" -exec rm -rf {} \;


鄉親們!!   看到沒,就這麼簡單,換個參數就搞定,把原本的 -name 改成 -iname 就好囉。


以此類推,剩下的自己搞定!

2013年1月16日 星期三

移除惱人的警告 NTFS Data Streams NTFS資料串流

有興趣了解原理的可以上Google用關鍵字「NTFS Data Streams」搜尋。



自從XP SP3之後,Vista或是Windows 7 應該都有遇到以下的情形吧!


這個檔案來自另一台電腦,可能會封鎖以協助保護您的電腦。

注意,這個畫面只會在點選單一檔案時才會出現,如果是選擇多個檔案的時候就不會出現。


無法確認發行者,您確定要執行這個軟體?




要解除這樣的情形很簡單,只需要上微軟官網下載「Streams」這個工具,再輸入指令就搞定。


Windows Sysinternals
http://technet.microsoft.com/en-us/sysinternals/bb545027.aspx

Streams v1.56
http://download.sysinternals.com/files/Streams.zip


streams.exe解壓縮放到 C:\Windows\System32 這個路徑下,因為這個路徑是系統內定的path之一,方便在任何目錄下操作。

1.開始>執行>cmd,出現dos視窗,用指令dir/o檢查 c:\ 底下的檔案,確認puttytel.exe存在,這是範例,以自己的電腦檔案為主。


2.輸入 streams/? ,會出現指令解說,參數 -s 是遞層目錄,參數 -d 是最重要的刪除streams,如果沒有加這個參數就無效。


3.刪除檔案streams,輸入指令stream -d c:\puttytel.exe ,用相對路徑或是絕對路徑都可以,但如果要當工作排程的批次檔,當然是還是絕對路徑最好。


刪除完畢,顯示Deleted :Zone.Identifier:$DATA 代表已經刪除streams了。


警告消失了,軟體也可以直接執行不會出現警告。



4.刪除目錄下所有檔案的streams(包含子目錄),輸入指令 streams -s -d c:\test ,如果要針對分割區底下所有的檔案,後面的指令只要改成 c:\ 或是 d:\ 就好了,以此類推。


目錄下一次全部搞定! (畫面顯示??是因為有中文,但是不會影響檔名和目錄名稱)

2013年1月1日 星期二

把Android 安裝在一般的x86電腦上

看到 Android 大部分的人都會覺得是Google手機專用的作業系統,但稍微瞭解的朋友都知道,其實骨子還是Linux,並不完全是新的系統。

既然是Linux,那要移植到一般的x86 PC上運行可能性就提高許多,國外有高手真的把這方案做出來了,上google搜尋 Android-x86 Project 便可知一二。


Android-x86 Project 官方網站
http://www.android-x86.org


下載ISO
http://code.google.com/p/android-x86/downloads/list

小弟下載的檔案是android-x86-4.0-RC2-eeepc.iso,硬體需求不會很高,拿來裝在Virtual Machine運行也是可以。


但是以上的版本有個小問題,就是有線網路卡的相關服務似乎沒有很完善,要另外輸入指令開啓才可以使用,如果覺得太麻煩的朋友可以考慮下載可以使用網卡的版本。

desktop_generic.iso




用VMware Workstation當範例安裝測試,Guest OS選Linux-Ubuntu 32位元,硬碟目前的版本只能選IDE,選SCSI的話會抓不到。

安裝過程非常簡單,幾乎都是下一步就可以完成,只要照著步驟就可以看到美美的Andorid畫面囉!




Shrinking a virtual disk using scripts in VMware Fusion 5 官方文件


Shrinking a virtual disk using scripts in VMware Fusion 5

Purpose

This article provides the steps to shrink a virtual disk in VMware Fusion 5.x using scripts.
 
Notes:
  • The VMware Tools user interface inside the virtual machine in Fusion 5 no longer has the option to shrink the virtual disk.
  • The Clean up Virtual Machine option under Settings > General can also be used to shrink the virtual disks.

Resolution

Shrinking the virtual disk in a Windows virtual machine

To shrink the virtual disk in a Windows virtual machine:
  1. Power on the Windows virtual machine.
  2. Open a Command Prompt with administrator privileges.
  3. Run these commands:

    cd C:\Program Files\VMware\VMware Tools
    C:\Program Files\VMware\VMware Tools> VMwareToolboxCmd help disk
    This displays a list of options that are available for shrinking.

Shrinking the virtual disk in a Linux virtual machine

To shrink the virtual disk in a Linux virtual machine:
  1. Open Terminal.
  2. Run these commands:

    cd /usr/bin

    /usr/bin$ vmware-toolbox-cmd help disk

Shrinking the virtual disk in a Mac OS X virtual machine

To shrink the virtual disk in a Windows virtual machine:
  1. Open Terminal.
  2. Run these commands:

    cd /Library/Application Support/VMware Tools

    ./vmware-tools-cli help disk
Note: To perform a normal shrink operation, use the shrink only option.

2012年12月31日 星期一

VMware Virtual Disk Shrink 將vmdk檔案縮小

VMware Virtual Disk Shrink 將vmdk檔案縮小

有使用VMware Workstation 或是Fusion 的使用者一定會遇到一個令人頭痛的問題,就是vmdk的檔案大小只會增加不會減少,如果用在硬碟上可能還不會太有感覺,但如果是使用速度等級+9,容量大小-10的SSD裝備,那真的就要特別的注意,以免一不小心就超崩,但如果你是屬於田橋仔,用的SSD容量都是1TB起跳的+20神裝,那這篇文章可以跳過了。

為何vmdk只會增加不會減少呢? vmdk在Virtual Machine裡面就是代表真正的硬碟,只要對硬碟稍有認識的都知道,作業系統刪除檔案的時候並沒有真正把的資料刪除,只是讓使用者看不到而已,所以救援軟體才可以把資料救回來,這也驗證了資料並沒有真正的被刪除。

由以上得知vmdk為何只會增加不會減少了,但真的沒有辦法了嗎? 耐屋口寧,今天就要是把這個小問題解決!

千萬別覺得原廠的設計很白癡,VMware是商業公司,軟體本來就是針對商業化,如果軟體設計檔案刪除就真的刪除的話,那才真的會出問題。在正式運行的環境當中,假設有檔案被誤刪,而軟體設計又直接delete的話,那不雞飛狗跳才怪,連救援的機會都沒有,保證會被罵到臭頭。

所以原廠目前的考量是給使用者自行決定,只要照著步驟應該都可以成功。分成兩個階段,為Guest OS和Host OS。


先從Guest OS來說好了,這裡用3種比較常見的OS來說明如何達成縮小之術。


Guest OS

Windows XP
1.到Microsoft官網下載SDelete v1.6版 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx
這個軟體主要的功能是把未使用到的空間全部清除,原理應該是全部填入0,也就是剛入手磁碟機的狀態,但針對的是未使用的空間,這步驟很重要,如果沒有執行這段,後面的指令還是會無效,因為vmdk未使用的空間並未被清除,軟體會當成還有資料在裡面,就沒有辦法把未使用的空間真正清除掉。
2.解壓縮把 SDelete.exe 放在C:\Windows\System32底下。
3.按Win+R呼叫出執行的視窗,或是點開始>執行也可以,輸入cmd後按Enter鍵。
4.輸入指令 sdelete -c -z c:\,假設你的Guest OS的Partition不只一個,最後面的c:\改成對應的磁碟機代號即可,例如d:\e:\


Linux
非常簡單,只要一行指令就搞定! 熟悉Linux的一看就知道,把zero.dat這個檔案填入無限的0,直到硬碟空間滿了就會自動停止,再把zero.dat這個檔案刪除。因為內容全都是0,所以軟體判斷未使用空間的內容都是空的,自然就可以正確釋放。
sudo dd if=/dev/zero of=zero.dat ; rm -f zero.dat 一行搞定
cat /dev/zero > zero.dat; rm -f zero.dat 這行指令也可以


Mac OS X
也只需要幾個動作而已,

2012年11月17日 星期六

Linux 多線下載的神兵利器 aria2

在Linux底下,如果想下載檔案可以用wget指令,但wget並沒有支援像FlashGet迅雷這類軟體主打的功能「多線下載」以及「BitTorrent」。

在這網路需求急速提升的世代,以及迷片量暴增的時代,沒支援多線下載還說得過去,但沒支援BT可就沒辦法讓鄉民大力支持了。 (沒辦法讓搖桿驅動起來,誰還會想用阿)

Linux系統下載BT軟體最出名的應該就是Transmission了,這玩意兒可厲害了,不但有提供GUI模式使用,還有提供網頁可讓遠端的電腦操控。更夭壽的是,文字介面下一樣也可以安裝使用,透過網頁就可以操作,大大的節省CPU資源,所以有許多NAS直接內建,不但快而且有效,加上配溫開水,保證15分鐘OUT! (拍謝,廣告看太多了........)

但畢竟Transmission只能下載BT,但是Http(s)、Ftp、Metalink這些會用到的協定都沒支援,在重要時刻無法發揮戰力,於是宣告退場。


在一場詭譎多變的因緣際會之下(好複雜喔 = ="),找尋到了aria2這套神兵利器,是堪稱盤古開天==>女媧補洞==>有史以來最強的Linux下載軟體? 以目前而言啦。(逃.....)

aria2有什麼過人之處呢? 我想應該是它有45CM吧,比鄉民平均30CM還要長,所以才有這麼多人支持它和推薦它。

靠! 阿不是啦,上面說的隨便看看就好(低頭看ing..........),會被這麼多朋友推崇的原因有很多。

它有著有以下的優點:

1.程式容量小,佔不到3MB的空間。
2.軟體資源需求低,不需要x-windows就能執行。
3.目前支援的協定有Http(s)、Ftp、BitTorrent、Metalink。
4.支援多線下載、續傳的功能。
5.GUI(圖形使用者介面)有支援Linux和Windows,非常方便,不用背指令。
6.支援Web GUI,可使用網頁新增、暫停、移除、管理,幾乎和GUI一樣。
7.想到在寫。


但也不是沒有缺點,像是:

1.目前不支援迅雷的下載協定。
2.某些web操控需要安裝LAMP(Linux、Apache、MySQL、PHP)。
3.沒辦法讓我用10G/10G的速度下載和上傳(這......會被打吧)。


先撇除缺點來看,aria2的確是非常理想的Download Manager,GUI可應用於一般平台上,遇到不支援的OS也可用網頁來操控,例如PAD、SmartPhone,使得aria2可用的層面就比其它相同類型的軟體還要多很多。


好了,前面屁了這麼多,也該進入主題了吧!

小弟目前的OS:Ubuntu Server 12.10

如何安裝aria2? 先上官網 http://aria2.sourceforge.net/ 抓取最新版的軟體,目前最新的版本是1.15.2,可以到 http://sourceforge.net/projects/aria2/files/stable/aria2-1.15.2/ 這裡下載。

可先用wget下載,等等設定好之後就可以體會到aria2的方便和快速了。 什麼,你該不會是開Server的文字介面在那邊一個字一個字慢慢敲? 孩子,別傻了,Windows底下有Putty、Pietty之類的ssh軟體可以連到Server,Linux就直接開啟Terminal執行ssh命令連接,直接複製貼上網址就好了咩,麥擱亂阿。

下載後請隨便找個地方把它埋了吧。 阿!  打錯,是把它解壓縮才對,解壓縮之後會看到一堆阿里不答的檔案,等等會用到。





使用aria2的方式可參考官網

Download from WEB:
$ aria2c http://example.org/mylinux.iso
Download from 2 sources:
$ aria2c http://a/f.iso ftp://b/f.iso
Download using 2 connections per host:
$ aria2c -x2 http://a/f.iso
BitTorrent:
$ aria2c http://example.org/mylinux.torrent
BitTorrent Magnet URI:
$ aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'
Metalink:
$ aria2c http://example.org/mylinux.metalink
Download URIs found in text file:
$ aria2c -i uris.txt

官網詳細命令解說


如果想要用網頁控制下載,或是通過GUI控制使用,那就得要讓aria2以背景運作的方式執行才可以,以小弟自己的主機為例。

linux@linux:/$ aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all --dir=/mnt/download --file-allocation=none -s 5 -j 10 -x 5 -c -D

--dir= 這個參數後面接的是下載的目錄夾,請用絕對路徑。
-D 這個參數是背景執行。

其它的參數請參考官網的解說,在此不累贅,但要注意一點的是,執行aria2的身分不要是root,否則下載的檔案權限會變成是root,別的帳戶要使用可就麻煩囉!



正確啟動aria2後,接下來就是Web GUI的設定,主機請先安裝LAMP。裝好之後系統預設的路徑是 /var/www ,權限記得要開放給一般使用者。


介紹幾個Web GUI

1.webui-aria2,官網推薦。
https://github.com/ziahamza/webui-aria2

2.yaaw,這個也是許多朋友的選擇,而且還有chrome的plugin可安裝。
https://github.com/binux/yaaw

3.Aria2Web
http://aria2web.sourceforge.net/

4.ziahamza,和第1是同一個作者,不需要安裝LAMP就可使用,但要記得開6800port。
http://ziahamza.github.com/webui-aria2/

2012年10月23日 星期二

MacBook Air 2012 安裝 Linux Ubuntu 作業系統

對於手上的東西總是想惡搞一番,例如把PC安裝OS X(俗稱黑蘋果),把MacBook Air安裝Windows、Linux之類的動作。

Apple的架構以前是PowerPC,由IBM生產,和一般x86 PC不相容,後來在2006年的時候推出Intel為平台的MacBook (之前的名稱為iBook),既然是x86 的Intel CPU,那安裝Windows的成功機率應該是非常高了,於是Mac皮Windows骨的NB就開始慢慢流行了(Mac產品的外表真的不錯)。

但是Mac的開機控制權和一般的PC不太一樣(雖然是Intel x86),一般PC的開機控制權限是BIOS > Boot Loader,也就是說BIOS的權限是優先


一、準備的道具如下

1.MacBook Air 一台 (廢話.......)

2.rEFIt 讓Mac有多重開機的選單(這個非常重要,沒有它就無法安裝和進入Linux了)
官網 http://refit.sourceforge.net/

3.Ubuntu 的iso光碟映像檔(選64位元的效能會比較好)
官網 http://www.ubuntu.com/

4.UNetbootin (把ISO安裝在USB隨身碟上,Windows、Linux、Mac都有支援)
官網 http://unetbootin.sourceforge.net/

5.隨身碟一隻,容量有超過ISO的大小就可以。

6.如果想把Ubuntu安裝在外接的Storage上面(Air的SSD更換不易,而PRO可以把光碟機換成硬碟),那就多準備一個USB硬碟或是隨身碟,容量最少要8GB,建議是選高速的會比較好,如果是SSD就更讚了。



二、建立Ubuntu安裝隨身碟

1.把隨身碟格式化成FAT32,磁碟區標籤填寫以方便開機的時候辨識。


2.開啟UNetbootin,選擇映像檔ISO,ISO當然是選則下載的Ubuntu ISO,類型選擇USB磁碟機,磁碟機的代號要注意別選錯了,點選「確定」後會開始複製,完成後選「退出」就好了。




3.把剛才做好的隨身碟拿到PC上測試是否可以進入Ubuntu的安裝畫面,如果可以就OK。



三、安裝Mac的多重開機引導

1.安裝rEFIt,打開rEFIt.dmg,點擊rEFIt.mpkg安裝。
 



2.把Ubuntu隨身碟插上USB之後重開機,如果畫面自動出現rEFIt的開機選單就代表成功。