Cygwin是一個用於在Windows上類比Linux環境的軟體。
通過cygwin,可以在windows環境下使用linux的程式,像find、tar等一些工具也可以在windows下使用,讓我們可以更方便的管理檔案。
一、cygwin下的一些常見問題:
1、常見問題說明;
a、盤符問題;
cygwin命令列中,“/cygdrive/c”等同於“C:/”。
b、更改cygwin預設路徑;
建立一個環境變數“HOME”,變數值即為你想要的cygwin開啟時的預設路徑(例如設為“/cygdrive/d”)。
2、常用的一些命令;
pwd 顯示當前的路徑
cygpath -dm "`pwd`" 顯示當前的完整路徑(即windows格式的路徑)
cd 改變當前路徑,無參數時進入對應使用者的home目錄
ls 列出目前的目錄下的檔案。此命令有N多參數,比如ls -al
ps 列出當前系統進程
kill 殺死某個進程
mkdir 建立目錄
rmdir 刪除目錄
rm 刪除檔案
mv 檔案改名或目錄改名
man 線上說明
less 顯示檔案的最末幾行
———————————————————————
ls #以預設顯示目前的目錄檔案清單
ls –a #顯示所有檔案包括隱藏檔案
ls –l #顯示檔案屬性,包括大小,日期,符號串連,是否可讀寫及是否可執行
ls –color=never *.so > obj #不顯示文字顏色,將所有so檔案記錄到obj檔案中
———————————————————————
cd dir #切換到目前的目錄下的dir目錄
cd .. #切換到到上一級目錄
cd ../.. #切換到上二級目錄
cd ~ #切換到使用者目錄,比如是root使用者,則切換到/root下
———————————————————————
rm file #刪除某一個檔案
rm -fr dir #刪除目前的目錄下叫dir的整個目錄
———————————————————————
cp source target #將檔案source 複製為 target
cp /root/source . #將/root下的檔案source複製到目前的目錄
cp –av soure_dir target_dir #將整個目錄複寫,兩目錄完全一樣
cp –fr source_dir target_dir #將整個目錄複寫,並且是以非連結方式複製,當source目錄帶有符號連結時,兩個目錄不相同
———————————————————————
mv source target #將檔案source更名為target
———————————————————————
二、find命令舉例;
1、找出目前的目錄及子目錄下修改日期比你的test.java更近的全部.java檔案;
find . -name '*.java' -newer test.java -print
2、找出目前的目錄及子目錄下所有今天你修改過的java代碼;
find . -name '*.java' -mtime 0 -print
3、上面的檔案中,哪些使用了awt庫;
find . -name '*.java' -mtime 0 -print | xargs grep 'java.awt'
4、找出“C:/”下除了“C:/windows”檔案夾之外的所有檔案
find /cygdrive/c -path "/cygdrive/c/windows" -prune -o -print
5、找出上面檔案中所有“.jar”結尾的檔案
find /cygdrive/c -path "/cygdrive/c/windows" -prune -o -name "*.jar" -print
6、找出當前的src目錄下的".class"檔案,並刪除它們;
find src -name '*.class' | xargs rm
ps:刪除之前最好先查看一下檔案以確認 find src -name '*.class' | xargs ls -l
7、刪除當前的src目錄下的所有".svn"檔案夾;
find src -name '.svn' | xargs rm -r
三、find命令說明: -----------連結:尋找命令find、xargs詳述------------
1、find命令的一般形式為;
find pathname -options [-print -exec -ok ...]
2、find命令的參數;
pathname: find命令所尋找的目錄路徑。例如用.來表示目前的目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該參數所給出的shell命令。相應命令的形式為'command' { } ";,注意{ }和";之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。
3、find命令選項
-name 按照檔案名稱尋找檔案。
-perm
按照檔案許可權來尋找檔案。
-prune
使用這一選項可以使find命令不在當前指定的目錄中尋找,如果同時使用-depth選項,那麼-prune將被find命令忽略。
-user
按照檔案屬主來尋找檔案。
-group
按照檔案所屬的組來尋找檔案。
-mtime -n +n
按照檔案的更改時間來尋找檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup
尋找無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。
-nouser
尋找無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。
-newer file1 ! file2
尋找更改時間比檔案file1新但比檔案file2舊的檔案。
-type
尋找某一類型的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
-size n:[c] 尋找檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。
-depth: 在尋找檔案時,首先尋找目前的目錄中的檔案,然後再在其子目錄中尋找。
-fstype: 尋找位於某一類型檔案系統中的檔案,這些檔案系統類型通常可以在設定檔/etc/fstab中找到,該設定檔中包含了本系統中有關檔案系統的資訊。
-mount:在尋找檔案時不跨越檔案系統mount點。
-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。
-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。
另外,下面三個的區別:
-amin n
尋找系統中最後N分鐘訪問的檔案-atime n
尋找系統中最後n*24小時訪問的檔案
-cmin n
尋找系統中最後N分鐘被改變檔案狀態的檔案
-ctime n
尋找系統中最後n*24小時被改變檔案狀態的檔案
-mmin n
尋找系統中最後N分鐘被改變檔案資料的檔案
-mtime n
尋找系統中最後n*24小時被改變檔案資料的檔案http://www.blogjava.net/Man/archive/2010/08/11/328574.html