1.js通常有一個(gè)地方錯(cuò)誤了, 下邊的函數(shù)都不會(huì)再繼續(xù)執(zhí)行啦(本來覺得很正常的事,但是...)
2.為什么open()請(qǐng)求服務(wù)器的時(shí)候,請(qǐng)求的servlet后邊要加一個(gè)參數(shù)變化,告知服務(wù)器這是一個(gè)新的請(qǐng)求???否則在IE8中請(qǐng)求失敗
我對(duì)此很感興趣,為了練習(xí)一下,就有了以下代碼。
投票功能使用jQuery實(shí)現(xiàn)..純html代碼...數(shù)據(jù)通過json字符串傳遞,通過 eval轉(zhuǎn)換為json對(duì)象
投票功能分為:
1.設(shè)置投票內(nèi)容:
2.投票:
3.投票結(jié)果:
文件列表:
傳值:
JavaScript正則實(shí)戰(zhàn)(會(huì)根據(jù)最近寫的不斷更新)
1、javascript 正則對(duì)象替換創(chuàng)建 和用法: /pattern/flags 先簡單案例學(xué)習(xí)認(rèn)識(shí)下replace能干什么
正則表達(dá)式構(gòu)造函數(shù): new RegExp("pattern"[,"flags"]);
正則表達(dá)式替換變量函數(shù):stringObj.replace(RegExp,replace Text);
參數(shù)說明:
pattern -- 一個(gè)正則表達(dá)式文本
flags -- 如果存在,將是以下值:
g: 全局匹配
i: 忽略大小寫
gi: 以上組合
//下面的例子用來獲取url的兩個(gè)參數(shù),并返回urlRewrite之前的真實(shí)Url
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";
//方式一,最簡單常用的方式
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);
//方式二 ,采用固定參數(shù)的回調(diào)函數(shù)
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);
//方式三,采用非固定參數(shù)的回調(diào)函數(shù)
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);
//方法四
//方式四和方法三很類似, 除了返回替換后的字符串外,還可以單獨(dú)獲取參數(shù)
var bookId;
var chapterId;
function capText()
{
var args=arguments;
bookId=args[2];
chapterId=args[3];
return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
}
var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);
//使用test方法獲取分組
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//獲取三個(gè)分組
alert(RegExp.$1);
alert(RegExp.$2);
alert(RegExp.$3);
2、 學(xué)習(xí)最常用的 test exec match search replace split 6個(gè)方法
1) test 檢查指定的字符串是否存在
var data = “123123″;
var reCat = /123/gi;
alert(reCat.test(data)); //true
//檢查字符是否存在 g 繼續(xù)往下走 i 不區(qū)分大小寫
2) exec 返回查詢值
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/i;
alert(reCat.exec(data)); //Cat
3)match 得到查詢數(shù)組
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]); //Cat cat
}
4) search 返回搜索位置 類似于indexof
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
alert(data.search(reCat)); //23
5) replace 替換字符 利用正則替換
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /cat/gi;
alert(data.replace(reCat,”libinqq”));
6)split 利用正則分割數(shù)組
var data = “123123,213,12312,312,3,Cat,cat,dsfsdfs,”;
var reCat = /\,/;
var arrdata = data.split(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
"^\\d+$" //非負(fù)整數(shù)(正整數(shù) + 0)
"^[0-9]*[1-9][0-9]*$" //正整數(shù)
"^((-\\d+)|(0+))$" //非正整數(shù)(負(fù)整數(shù) + 0)
"^-[0-9]*[1-9][0-9]*$" //負(fù)整數(shù)
"^-?\\d+$" //整數(shù)
"^\\d+(\\.\\d+)?$" //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
//正浮點(diǎn)數(shù)
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
//負(fù)浮點(diǎn)數(shù)
"^(-?\\d+)(\\.\\d+)?$" //浮點(diǎn)數(shù)
"^[A-Za-z]+$" //由26個(gè)英文字母組成的字符串
"^[A-Z]+$" //由26個(gè)英文字母的大寫組成的字符串
"^[a-z]+$" //由26個(gè)英文字母的小寫組成的字符串
"^[A-Za-z0-9]+$" //由數(shù)字和26個(gè)英文字母組成的字符串
"^\\w+$" //由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
"^[A-Za-z0-9_]*$"。
============================================正則表達(dá)式基礎(chǔ)知識(shí)==============================================
^ 匹配一個(gè)輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個(gè)輸入或一行的結(jié)尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/將匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba+/將匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba?/將匹配b,ba
(x) 匹配x保存x在名為$1...$9的變量中
x|y 匹配x或y
{n} 精確匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配這個(gè)集合中的任一一個(gè)字符(或元字符)
[^xyz] 不匹配這個(gè)集合中的任何一個(gè)字符
[\b] 匹配一個(gè)退格符
\b 匹配一個(gè)單詞的邊界
\B 匹配一個(gè)單詞的非邊界
\cX 這兒,X是一個(gè)控制符,/\cM/匹配Ctrl-M
\d 匹配一個(gè)字?jǐn)?shù)字符,/\d/ = /[0-9]/
\D 匹配一個(gè)非字?jǐn)?shù)字符,/\D/ = /[^0-9]/
\n 匹配一個(gè)換行符
\r 匹配一個(gè)回車符
\s 匹配一個(gè)空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一個(gè)非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一個(gè)制表符
\v 匹配一個(gè)重直制表符
\w 匹配一個(gè)可以組成單詞的字符(alphanumeric,這是我的意譯,含數(shù)字),包括下劃線,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一個(gè)不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
1,準(zhǔn)備工作
我們這里使用Mysql數(shù)據(jù)庫,我在shop數(shù)據(jù)庫中創(chuàng)建了一張mobileshop表,這張表有兩個(gè)字段name,model。
打開記事本,輸入下列代碼:
將上述代碼保存為Conn.jsp,用于返回查詢結(jié)果集。
2,服務(wù)器端代碼
在本實(shí)例中,服務(wù)器端代碼具有獲取客戶端請(qǐng)求頁數(shù)和產(chǎn)生指定記錄集的功能。打開記事本,輸入下列代碼:
1,服務(wù)器端代碼
該實(shí)例服務(wù)器端代碼的功能比較簡單,即產(chǎn)生一個(gè)隨機(jī)數(shù),并以XML文件形式返回給客戶端。打開記事本,輸入下列代碼:
保存上述代碼,名稱為auto.jsp。在該文件中,使用java.lang包中的Math類,產(chǎn)生一個(gè)隨機(jī)數(shù)。
2,客戶端代碼
本實(shí)例客戶端代碼主要利用服務(wù)器端返回的數(shù)字,指定顯示樣式。打開記事本,輸入下列代碼
將上述代碼保存,名稱為autoRefresh.jsp。在該文件中,createXMLHttpRequest()函數(shù)用于創(chuàng)建異步調(diào)用對(duì)象;sendRequest()函數(shù)用于發(fā)送請(qǐng)求到客戶端;processResponse()函數(shù)用于處理服務(wù)器端的響應(yīng),在處理過程中調(diào)用DisplayHot()函數(shù)設(shè)定數(shù)據(jù)的顯示樣式。其中,setTimeout(“sendRequest()”,1000)函數(shù)的含義為每隔1秒的時(shí)間調(diào)用sendRequest()函數(shù),該函數(shù)在Ajax頁面刷新中起了一個(gè)主導(dǎo)作用。DisplayHot()函數(shù)主要用于從服務(wù)器端返回的XML文件進(jìn)行解析,并獲取返回?cái)?shù)據(jù),顯示在當(dāng)前頁面。
開始的時(shí)候,感覺驗(yàn)收就驗(yàn)收沒什么。可是,有小道消息稱,做的不好的有可能重構(gòu)。如果是因?yàn)楫?dāng)初的設(shè)計(jì)思路或者是邏輯錯(cuò)誤而重構(gòu),那無話可說,必須要重構(gòu)。但是如果是因?yàn)橐恍┳⑨尅ML圖、命名規(guī)范等而重構(gòu),都會(huì)讓大家笑話。
于是,在前面人驗(yàn)收的時(shí)候,后面的人都在討論驗(yàn)收人員的側(cè)重點(diǎn)。然后大家在修改自己的收費(fèi)系統(tǒng)。
通過這次驗(yàn)收,雖然我沒有被要求重構(gòu),但是,在驗(yàn)收過程中還是出現(xiàn)了很多的問題,驗(yàn)收人員也給提出了很多的寶貴意見。
首先就是出現(xiàn)的問題。
命名不規(guī)范。尤其是參數(shù)的命名,當(dāng)初以為參數(shù)只是使用在某一個(gè)方法或者函數(shù)中,不會(huì)和其他的類、函數(shù)產(chǎn)生關(guān)系,不用太在意它的命名。可是,這種代碼只適合與自己看,其他人看你的代碼就會(huì)感覺不舒服,同時(shí)給人一種外行的感覺。
注釋不全。雖說對(duì)于類、方法和函數(shù)都做了注釋,但是,不是很完整。例如,所有的remarks都是空著的。通過驗(yàn)收人員的講解,理解了它的作用,記錄版本號(hào),編寫時(shí)間以及修改時(shí)間。還有就是,對(duì)于注釋的代碼,不要?jiǎng)h除,而應(yīng)該保留并完整寫明修改人,以及修改的時(shí)間。雖說是個(gè)人版的,但對(duì)于注釋,都是被刪除了。
文檔不全。當(dāng)時(shí)做收費(fèi)系統(tǒng)的時(shí)候,只寫了需求、概要、數(shù)據(jù)庫設(shè)計(jì)以及詳細(xì)設(shè)計(jì)文檔。其他的則沒有寫。當(dāng)初就是由于惰性的原因吧,感覺寫文檔太枯燥了,就急于編寫代碼了,當(dāng)系統(tǒng)實(shí)現(xiàn)之后,就以為系統(tǒng)實(shí)現(xiàn)了就行了,至于其他文檔就算了吧。
對(duì)UML圖理解不深。當(dāng)初在畫UML圖的時(shí)候,對(duì)用例圖理解的不是太深,以至于我的用例圖中的用例都是窗體。在驗(yàn)收過程中,自己都不禁問自己,當(dāng)初是怎么想的呢?怎么會(huì)出現(xiàn)那種用例圖呢?
再說一些個(gè)別人出現(xiàn)的問題吧(也算是給自己提個(gè)醒)
文檔、數(shù)據(jù)庫沒了。在做完機(jī)房收費(fèi)系統(tǒng)到現(xiàn)在有很長的時(shí)間了,有的同學(xué)重裝了系統(tǒng)。有的沒有提前把數(shù)據(jù)庫中的數(shù)據(jù)備份,導(dǎo)致現(xiàn)在沒有了原先的數(shù)據(jù)。而文檔,有的是在第一遍的基礎(chǔ)上修改的,原先的也沒有備份。導(dǎo)致現(xiàn)在的文檔是合作版的時(shí)候,自己第三次修改的文檔,前兩次的文檔都沒了。
UML圖不知道哪一個(gè)是最新版本。有的同學(xué)UML圖畫了好幾遍,但是在文件保存的時(shí)候,沒有注意到命名,沒有表明版本號(hào)。以至于尋找的時(shí)候花費(fèi)了很長時(shí)間,有的甚至就找不到了。
應(yīng)該說,通過這次驗(yàn)收,讓我們認(rèn)識(shí)到了當(dāng)初所做的系統(tǒng)存在著很大的不足。這次要求我們都要補(bǔ)全文檔、注釋,規(guī)范命名等等,讓我們長了一個(gè)記性。對(duì)我們來說沒有壞處。同時(shí)通過這次驗(yàn)收,也讓我們認(rèn)識(shí)到,文件備份、管理、保存的重要性。在以后大家都會(huì)記住這次的驗(yàn)收來提醒自己。
在提高班,四年的學(xué)習(xí)中,分了幾個(gè)重要的模塊。其中在重要的關(guān)鍵的方向性的學(xué)習(xí)上是需要把控的,是需要及時(shí)檢驗(yàn)以及驗(yàn)收的。
在驗(yàn)收八期學(xué)習(xí)的過程中,不僅發(fā)現(xiàn)他們的問題,同時(shí)也發(fā)現(xiàn)自己的問題。
驗(yàn)收工作,不僅是驗(yàn)收他們,同時(shí)也是驗(yàn)收自己對(duì)此知識(shí)點(diǎn)掌握的情況。
首先說一下驗(yàn)收過程中,八期普遍存在的問題。
1. 對(duì)文檔的認(rèn)識(shí)不夠,導(dǎo)致文檔與程序不對(duì)應(yīng)。
包圖與程序集的對(duì)應(yīng),這個(gè)沒意識(shí)到。命名是其中一方面,還有就是其中包圖中的每條線的作用,意義,以及在代碼中體現(xiàn)。
2. UML認(rèn)識(shí)不夠,需要進(jìn)步學(xué)習(xí)。
UML中的共九種圖,常用的像用例圖,類圖,對(duì)象圖,時(shí)序圖,包圖,活動(dòng)圖,狀態(tài)圖這幾種,每種圖的符號(hào)以及畫法掌握不夠。并且對(duì)每種圖的概念以及適合什么場景有所欠缺。并且圖中的關(guān)系需要進(jìn)步掌握。比如用例之間的包含關(guān)系、擴(kuò)展關(guān)系等,還有UML中的五種關(guān)系以及在代碼中的體現(xiàn)。
3. 對(duì)分層的認(rèn)識(shí)不夠,導(dǎo)致假隔離真耦合。
不僅僅把程序分成了UI,BLL,DAL,但是最主要的是各個(gè)層之間的隔離。比如因?yàn)镈AL生成的路徑的原因,導(dǎo)致了明明UI與DAL隔離,卻因?yàn)槁窂絾栴}而再次耦合,結(jié)果確是一種假隔離真耦合。還有就是BLL,DAL引入UI中的某個(gè)包,導(dǎo)致了后面與前面分層再次耦合。
4. 規(guī)范問題。命名規(guī)范,注釋規(guī)范。
5. 對(duì)文檔中的內(nèi)容理解不到位,導(dǎo)致人云亦云。
常寫的幾種需求說明書,概要說明書,詳細(xì)說明書。對(duì)其中的內(nèi)容不了解,不知道文檔中應(yīng)該寫什么。也不知道那些圖應(yīng)該放在那個(gè)文檔中。導(dǎo)致了結(jié)果,每個(gè)文檔中都有重復(fù)的東西。
6. 項(xiàng)目驅(qū)動(dòng)未做到。
大家著急開發(fā),忽略文檔。在開發(fā)過程中,文檔一直沒有起到任何作用,所以對(duì)文檔沒有深度認(rèn)識(shí)。
八期出現(xiàn)的問題,確實(shí)可以理解。當(dāng)時(shí)的七期,也翻過如此的錯(cuò)誤。這畢竟是八期第一次的個(gè)人版。做到這種程度,已經(jīng)是相當(dāng)好了。當(dāng)初的七期,幾乎每人重構(gòu)了三四遍。對(duì)這個(gè)分層,文檔才有了今天的理解以及重視。
然后說一下驗(yàn)收過程中,自己的收獲問題。
1. 發(fā)言溝通交流。通過這次發(fā)言機(jī)會(huì),鍛煉與他人溝通,交流。
2. 在驗(yàn)收他們的過程中,進(jìn)一步考驗(yàn)自己的對(duì)過去知識(shí)點(diǎn)的理解。
提問他們,促進(jìn)他們的思考,同時(shí)與自己所學(xué)的知識(shí)進(jìn)行比對(duì),補(bǔ)充自己的欠缺。
其中有個(gè)學(xué)生的包圖,自己也理解錯(cuò)了,對(duì)工廠模式,抽象工廠模式,反射,以及接口,多態(tài)這些應(yīng)用有了進(jìn)一步認(rèn)識(shí)。
3. 對(duì)某個(gè)知識(shí)點(diǎn)的問題學(xué)習(xí)。
其中有個(gè)學(xué)生用了單例模式。單利模式的作用,以及好處都是可以理解的,但是當(dāng)時(shí)的他利用的嵌套類實(shí)現(xiàn)的單例模式,對(duì)嵌套類,靜態(tài)塊有了進(jìn)一步認(rèn)識(shí)。
另一個(gè)是錯(cuò)誤處理。Trycatch,throw,throws知識(shí)點(diǎn)的學(xué)習(xí)。
4. 對(duì)文檔中的內(nèi)容進(jìn)一步補(bǔ)充。
全體七期發(fā)言,正好補(bǔ)充自己對(duì)文檔的認(rèn)識(shí)不足的問題。
5. 驗(yàn)收中記錄下自己的不懂的問題。
對(duì)UML中活動(dòng)圖,狀態(tài)圖,構(gòu)件圖,部署圖的概念理解,但是畫出某一個(gè)圖,無法確定對(duì)與錯(cuò),說明自己對(duì)這方面欠缺。
6. 再次加深文檔的問題。規(guī)范問題。
當(dāng)把問題提給八期的學(xué)生時(shí),同時(shí)也在提給自己。嚴(yán)格要求自己,以專業(yè)程序猿的身份要求自己。各種文檔,代碼規(guī)范化。
驗(yàn)收別人,也在驗(yàn)收自己。抓住一切可以提升自己的機(jī)會(huì)。
1)展開 abc.tar.gz 使用命令: tar xvzf abc.tar.gz 展開 abc.tar 使用命令: tar xvf abc.tar
2)將當(dāng)前目錄下的 man 目錄及其子目錄存成存檔 man.tar tar cf man.tar ./man
參數(shù)說明
運(yùn)行tar時(shí)必須要有下列參數(shù)中的至少一個(gè)才可運(yùn)行
-A, --catenate, --concatenate
將一存檔與已有的存檔合并
-c, --create
建立新的存檔
-d, --diff, --compare
比較存檔與當(dāng)前文件的不同之處
--delete
從存檔中刪除
-r, --append
附加到存檔結(jié)尾
-t, --list
列出存檔中文件的目錄
-u, --update
僅將較新的文件附加到存檔中
-x, --extract, --get
從存檔展開文件
其他參數(shù)
--atime-preserve
不改變轉(zhuǎn)儲(chǔ)文件的存取時(shí)間
-b, --block-size N
指定塊大小為 Nx512 字節(jié)(缺省時(shí) N=20)
-B, --read-full-blocks
讀取時(shí)重組塊(???!!!)
-C, --directory DIR
轉(zhuǎn)到指定的目錄
--checkpoint
讀取存檔時(shí)顯示目錄名
-f, --file [HOSTNAME:]F
指定存檔或設(shè)備 (缺省為 /dev/rmt0)
--force-local
強(qiáng)制使用本地存檔,即使存在克隆
-F, --info-script F --new-volume-script F
在每個(gè)磁盤結(jié)尾使用腳本 F (隱含 -M)
-G, --incremental
建立老 GNU 格式的備份
-g, --listed-incremental F
建立新 GNU 格式的備份
-h, --dereference
不轉(zhuǎn)儲(chǔ)動(dòng)態(tài)鏈接,轉(zhuǎn)儲(chǔ)動(dòng)態(tài)鏈接指向的文件。
-i, --ignore-zeros
忽略存檔中的 0 字節(jié)塊(通常意味著文件結(jié)束)
--ignore-failed-read
在不可讀文件中作 0 標(biāo)記后再退出???
-k, --keep-old-files
保存現(xiàn)有文件;從存檔中展開時(shí)不進(jìn)行覆蓋
-K, --starting-file F
從存檔文件 F 開始
-l, --one-file-system
在本地文件系統(tǒng)中創(chuàng)建存檔
-L, --tape-length N
在寫入 N*1024 個(gè)字節(jié)后暫停,等待更換磁盤
-m, --modification-time
當(dāng)從一個(gè)檔案中恢復(fù)文件時(shí),不使用新的時(shí)間標(biāo)簽
-M, --multi-volume
建立多卷存檔,以便在幾個(gè)磁盤中存放
-N, --after-date DATE, --newer DATE
僅存儲(chǔ)時(shí)間較新的文件
-o, --old-archive, --portability
以 V7 格式存檔,不用 ANSI 格式
-O, --to-stdout
將文件展開到標(biāo)準(zhǔn)輸出
-p, --same-permissions, --preserve-permissions
展開所有保護(hù)信息
-P, --absolute-paths
不要從文件名中去除 '/'
--preserve
like -p -s
與 -p -s 相似
-R, --record-number
顯示信息時(shí)同時(shí)顯示存檔中的記錄數(shù)
--remove-files
建立存檔后刪除源文件
-s, --same-order, --preserve-order
???
--same-owner
展開以后使所有文件屬于同一所有者
-S, --sparse
高效處理
-T, --files-from F
從文件中得到要展開或要?jiǎng)?chuàng)建的文件名
--null
讀取空結(jié)束的文件名,使 -C 失效
--totals
顯示用 --create 參數(shù)寫入的總字節(jié)數(shù)
-v, --verbose
詳細(xì)顯示處理的文件
-V, --label NAME
為存檔指定卷標(biāo)
--version
顯示 tar 程序的版本號(hào)
-w, --interactive, --confirmation
每個(gè)操作都要求確認(rèn)
-W, --verify
寫入存檔后進(jìn)行校驗(yàn)
--exclude FILE
不把指定文件包含在內(nèi)
-X, --exclude-from FILE
從指定文件中讀入不想包含的文件的列表
-y, --bzip2, --bunzip2
用 bzip2 對(duì)存檔壓縮或解壓
-Z, --compress, --uncompress
用 compress 對(duì)存檔壓縮或解壓
-z, --gzip, --ungzip
用 gzip 對(duì)存檔壓縮或解壓
--use-compress-program PROG
用 PROG 對(duì)存檔壓縮或解壓 ( PROG 需能接受 -d 參數(shù))
--block-compress
為便于磁盤存儲(chǔ),按塊記錄存檔
-[0-7][lmh]
指定驅(qū)動(dòng)器和密度[高中低]