一些工作中用到的指令碼

來源:互聯網
上載者:User

>>>>>>>>>>>尋找搜尋的一些組合用法:

find grep xargs exec的組合用法:
---------------------------------------------------------------------------------------------------
1. 尋找所有".h"檔案
find /PATH -name "*.h"

2. 尋找所有".h"檔案中的含有"helloworld"字串的檔案
find /PATH -name "*.h" -exec grep -in "helloworld" {} /; -print

3. 尋找所有".h"和".c"檔案中的含有"helloworld"字串的檔案
find /PATH /( -name "*.h" -or -name "*.c" /) -exec grep -in "helloworld" {} /; -print

4. 尋找非備份檔案中的含有"helloworld"字串的檔案
find /PATH /( -not -name "*~" /) -exec grep -in "helloworld" {} /; -print

5尋找一個檔案名稱字,然後刪除之 
find ./ -name filename -exec   rm   {}   \;
---------------------------------------------------------------------------------------------------
grep命令系統調用
grep是Linux/Unix中使用最廣泛的命令之一,許多Linux系統內部都可以調用它。

(1)如果要查詢目錄列表中的目錄,方法如下:
$ ls -l | grep ''∧d''

(2)如果在一個目錄中查詢不包含目錄的所有檔案,方法如下:
$ ls -l | grep ''∧[∧d]''

(3)用find命令調用grep,如所有C原始碼中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} ;-print

grep尋找中條件的使用:
[aa@localhost ~]$ df -hT |grep  'sda1/|sda3'
/dev/sda3     ext3    225G  162G   52G  76% /
/dev/sda1     ext3    122M   12M  104M  11% /boot

[aa@localhost ~]$ df -hT |grep -e "sda1" -e "sda3"
/dev/sda3     ext3    225G  162G   52G  76% /
/dev/sda1     ext3    122M   12M  104M  11% /boot
---------------------------------------------------------------------------------------------------
使用xargs:
在目前的目錄下所有cpp檔案裡面尋找efg函數:
find . -name "*.cpp" | xargs grep 'efg'
其中:xargs展開find獲得的結果,使其作為grep的參數.例如:find . -name "Android.mk" | xargs grep 'libexif'

刪除目前的目錄下所有.cpp檔案
find . -name "*.cpp" | xargs rm

目前的目錄的檔案中包含字元aaa的行數:
find . -exec grep aaa {} | wc -l

>>>>>>>>>>>修改ramdisk.img的流程。經常需要修改這個東西,用指令碼比較方便。

其實ramdisk.img的內容就是/opt/froyo/out/target/product/generic/root的壓縮而已
1
先查看ramdisk.img檔案的類型,如果是cpio打包的,跳過第一步,這裡我的ramdisk.img用gzip做了壓縮:
$ file ramdisk.img 
ramdisk.img: gzip compressed data, from Unix, last modified: Fri Oct 14 20:07:23 2011

如果是gzip壓縮的。先解壓:
$ mv ramdisk.img  ramdisk.img.gz
$ gunzip ramdisk.img.gz
解壓得到ramdisk.img檔案。

2
$ file ramdisk.img 
ramdisk.img: ASCII cpio archive (SVR4 with no CRC)

使用cpio提取ramdisk.img檔案中的內容
  mkdir temp
  cd temp
  cpio -i -F ../ramdisk.img
   可以在temp目錄下看到ramdisk.img中的內容。

//以上兩步一起就是: gunzip -c ../ramdisk.img | cpio -i

3
修改相應要修改的檔案後,再打包成ramdisk.img檔案的步驟如下:
      cd /temp
      find . |cpio -ov -H newc |gzip > ../ramdisk.img
      cd ..
      ls
     可以看到產生的ramdisk.img檔案。

//當然也可以使用mkbootfs工具(mkbootfs工具是編譯完畢Android後,在out/host/linux-x86/bin自動產生)來重新建立ramdisk,如下命令:
//$ mkbootfs ./temp | gzip > ramdisk.img

然後使用mkbootimg來重新建立boot.img,mkbootimg也可以在out/host/linux-x86/bin中找到。
$ mkimage -A arm -O linux -T multi -C none -a 0x80008000 -e 0x80008000 -n 'ARM-Linux-2.6.32-xxxx' -d ./zImage:./ramdisk.img boot.img

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.