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.