1. Linux : /bin/tar
  2. Shared Library
    /bin/tar :
    libc.so.6 => /lib/libc.so.6 (0x4001d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
  3. 意義 : 這裡寫的是tar的GNU版本, 這個程式設計來將壓縮的檔案儲存並解開成tarfile。一個tarfile可能在一個tape drive 上製造, 但它也可以很普通地將tarfile寫到normal file。tar的第一個參數必須是Acdrtux(跟隨在任何可選擇的函式後) 的其中一個option。tar的最後一個參數是應該要被壓縮的檔案或目錄的名稱。目錄名稱的使用意味著在該目錄下的子目錄
  應該也包含在壓縮檔裡。
概要 : tar [ - ] A --catenate --concatenate | c --create | d --diff --compare | r --append | t --list | u --update
  x -extract --get [ --atime-preserve ] [ -b, --block-size N ] [ -B, --read-full-blocks ] [ -C, --directory DIR ]
  [ --checkpoint ] [ -f, --file [HOSTNAME:]F ] [ --force-local ] [ -F, --info-script F --new-volume-script F ]
  [ -G, --incremental ] [ -g, --listed-incremental F ] [ -h, --dereference ] [ -i, --ignore-zeros ] [ -I, --bzip ]
  [ --ignore-failed-read ] [ -k, --keep-old-files ] [ -K, --starting-file F ] [ -l, --one-file-system ]
  [ -L, --tape-length N ] [ -m, --modification-time ] [ -M, --multi-volume ]
  [ -N, --after-date DATE, --newer DATE ] [ -o, --old-archive, --portability ] [ -O, --to-stdout ]
  [ -p, --same-permissions, --preserve-permissions ] [ -P, --absolute-paths ] [ --preserve ]
  [ -R, --record-number ] [ --remove-files ] [ -s, --same-order, --preserve-order ] [ --same-owner ]
  [ -S, --sparse ] [ -T, --files-from F ] [ --null ] [ --totals ] [ -v, --verbose ] [ -V, --label NAME ]
  [ --version ] [ -w, --interactive, --confirmation ] [ -W, --verify ] [ --exclude FILE ]
  [ -X, --exclude-from FILE ] [ -Z, --compress, --uncompress ] [ -z, --gzip, --ungzip ]
  [ --use-compress-program PROG ] [ --block-compress ] [ -[0-7][lmh] ]


filename1 [ filename2, ... filenameN ]

directory1 [ directory2, ...directoryN ]

函式字母

下列option至少有一個必須用到 :
-A, --catenate --concatenate

  -c, --create
-d, --diff --compare
--delete
-r, --append
-t, --list
-u, --update
-x, --extract, --get
附加tar檔到一個壓縮檔
產生一個新的壓縮檔
尋找壓縮檔和檔案系統的差異
從壓縮檔中刪除(不用於mag tapes上)
附加檔案到壓縮檔的末端
列出一個壓縮檔的內容
只附加比壓縮檔裡的copy檔新的檔案
將壓縮檔解開
其他OPTIONS :  
  --atime-preserve
-b, --block-size N
-B, --read-full-blocks
-C, --directory DIR
--checkpoint
-f, --file [HOSTNAME:]F
--force-local
不改變dumped files的存取時間
N*512 bytes的區塊大小 (預設N為20)
當我們讀取的時候, 重新block ( 對於在讀4.2BSD pipes時)
改變位置到目錄DIR
當讀取這個壓縮檔時, 印出目錄名稱
使用壓縮檔或裝置F (預設是 /dev/rmt0)
壓縮檔是local的, 即使它有冒號
  -F, --info-script F --new-volume-script F
  -G, --incremental
-g, --listed-incremental F
-h, --dereference
-i, --ignore-zeros
-I, --bzip
--ignore-failed-read
-k, --keep-old-files
-K, --starting-file F
-l, --one-file-system
-L, --tape-length N
-m, --modification-time
-M, --multi-volume
在每個tape的末端跑script (implies -M)
創造/列出/解開 舊的GNU-format增加的備份
創造/列出/解開 新的GNU-format增加的備份
不要dump symbolic link; dump他們所指定的檔案
忽略壓縮檔裡零的區塊 (正常是指EOF)
用bzip2過濾壓縮檔
在不可讀的檔案下不要自非零的狀態離開
保留已存在的檔案; 不要從壓縮檔覆寫它們
從壓縮檔裡的檔案F開始
當產生一個壓縮檔時, 停留在local的檔案系統裡
寫完 N*1024 bytes後,改變tapes
不要解開檔案修改過的時間
創造/列出/解開 multi-volume的壓縮檔
  -N, --after-date DATE, --newer DATE
只存比DATE新的檔案
  -o, --old-archive, --portability
  -O, --to-stdout 寫一個V7的format壓縮檔, 而不是ANSI format
解開檔案到標準輸出
  -p, --same-permissions, --preserve-permissions
  -P, --absolute-paths
--preserve
-R, --record-number
--remove-files
解開所有保護的資訊
不要去除檔名裡的'/'
好比 -p -s
將壓縮檔裡的每個message的記錄number顯示出來
在加入檔案到壓縮檔裡後將之移除
  -s, --same-order, --preserve-order
  --same-owner
-S, --sparse
-T, --files-from F
--null
--totals
-v, --verbose
-V, --label NAME
--version
解開的名稱列表被排序以match壓縮檔
創造有相同所有權的解開的檔案
有效率地管理稀疏的檔案
從檔案F得到要解開或創造的名稱
T讀取零結尾的名稱, disable -C
印出所有創造時寫入的的總bytes數
冗長地列出處理過的檔案
創造一個壓縮檔, VOLUME name為NAME
印出tar程式版本數字
  -w, --interactive, --confirmation
  -W, --verify
--exclude FILE
-X, --exclude-from FILE
-Z, --compress, --uncompress
-z, --gzip, --ungzip
--use-compress-program PROG
對於每一動作請求確認
在寫入壓縮檔後試圖去驗證
排除檔案FILE
排除列在FILE的檔案
用壓縮來過濾壓縮檔
用gzip來過濾壓縮檔
用PROG來過濾壓縮檔 (此程式必須接受 -d)

/bin/vi :
意義 : 這裡說的是vim -- 由vi改良過的, 一個programmers文字編輯器。Vim向上相容於Vi。它可以用來編輯任何的ASCII文件。

對於編輯程式是特別有幫助。
Vim對於Vi增加許多地方 : 多重層次的undo, 多重視窗和緩衝區, 突顯語法, 命令列編輯, 檔名完成, 線上輔助, 視覺選擇,等。 可參考 ":help vi_diff.txt", 來看Vim與Vi之間的差別的摘要。 當我們執行Vim時,我們可由線上輔助得到許多幫助,用":help"命令。參考下面的線上輔助部份。

通常Vim是用 vim file 這個命令來開始編輯一個單一的檔案。 時常Vim是開始於 vim [options] [filelist] 這個命令。

如果filelist遺失了, 編輯器將從一個空的緩衝區開始。另外,確切地是下面四個之一可以用來選擇一個或多個檔案來編輯。

file .. 檔名的列表。第一個將會是目前的檔案並自緩衝區讀取。游標的位置將會在緩衝區的第一行。
你可以用":next"這個命令換到其他檔案。要編輯一個由dash開始的檔案, 必須在檔案列表前加上"--"。
- 要編輯的檔案是從stdin讀進來的。命令是從應該是tty的stderr讀進來的。
-t {tag} 要編輯的檔案及初始的游標位置是依一個goto標籤的排序"tag"來決定的。{tag}是從tags fille中查詢的,
有關聯的檔案變成目前的檔案, 有關聯的命令則正被執行。通常,這會用在C program, 這個情況下, {tag}
可以是函式名稱。這個作用是讓檔案裡含有這個函式的變成目前的檔案, 游標也移到這個函式開始的地方。
可參考 ":help tag-commands"。
-q [errorfile] 從quickFix模式開始。這個[errorfile]檔案已經讀取, 第一個錯誤也已顯示出來。如果[errorfile]是忽略的,
則這個檔名將由"errorfile"這個option得到(預設在Amiga是"AztecC.Err", 其他系統是"errors.vim")。
可以用":cn"這個命令來跳到更多的錯誤。可參考 ":help quickfix"。

Vim作用可能會因命令的名稱而不一樣(執行可能仍在同一檔案)。

vim "標準"模式, 全部是預設值。
ex 開始於Ex模式。用":vi"這個命令可到標準模式。也可用"-e"這個參數。
view 開始於read-only模式。你將不能修改檔案。也可用"-R"這個參數。
gvim gview GUI版本。開始一個新的視窗。也可用"-g"這個參數。
rvim rview rgvim rgview 跟上面的很像, 但有一些限制。它不可能去開始shell命令或是中止Vim。
也可用"-Z"這個參數。

概要 : vim [options] [file ..]

vim [options] -
vim [options] -t tag
vim [options] -q [errorfile]

ex
view
gvim gview
rvim rview rgvim rgview

OPTION :

這些options可以任何順序加在檔名的前或後。沒有參數的option可以用一個dash在後面相接。

+[num]

+/{pat}
+{command}
-c {command}
-b
-C
-d {device}
-e
-f
-F
-g
-h
-H
-i {viminfo}
-L
-l
-m
-N
-n
-o[N]
-R
-r
-r {file}
-s
-s {scriptin}
-T {terminal}
-u {vimrc}
-U {gvimrc}
-V
-v
-w {scriptout}
-W {scriptout}
-x
-Z
第一個檔案的游標的位置將在"num"的那一行上。如果找不到"num", 游標將在最後一行上。
第一個檔案的游標將再第一個出現{pat}的地方。可參考":help search-pattern"來的到可利用的search patterns。
第一個檔案被讀取後, {command}將被執行。{command}是解釋成像Ex command。如果{command}包含空白, 則必須用
雙引號括起來(這跟用的shell有關)。例如 : Vim "+set si" main.c
Note : 你可以用10個之多的"+"或"-c"命令。
二進位的模式。一些option將被設定, 使得可以編輯二進位及可執行的檔案。
相容的。設定這個'相容的'option, 可使Vim操作起來比較像Vi, 即使一個.vimrc檔案存在。
開啟{device}來當作terminal使用, 只有在Amiga上。例如 : "-d con:20/30/600/150"。
在Ex模式開始執行Vim, 就好像這個可執行的叫"ex"。
前景。在GUI版本, Vim不會fork而且從shell啟動時分離。在Amiga上, Vim不會重新啟動去開啟一個新的視窗。當Vim
被一個在等待編輯session完成的program執行時, 這個option應該被用到(e.g. mail)。在Amiga上,":sh"和":!"命令
並不能使用。
如果Vim被有FKMAP support編譯過, 來編輯右到左導向的檔案, 並且和Farsi鍵盤有對應, 這個option會在Farsi模式
開始執行Vim, i.e. 'fkmap' 和 'rightleft'被設定。否則, 錯誤訊息將出現, Vim會中止。
如果Vim被有GUI support編譯過, 則這個option enable GUI。如果Vim被沒有GUI support編譯過,則會出現一個錯誤訊息,
並中止Vim。
給一個help的bit有關於命令列的參數及options。在這之後, Vim存在。
如果Vim被有RIGHTLEFT support編譯過, 來編輯右到左導向的檔案, 並且和Hebrew鍵盤有對應, 這個option會在Hebrew
模式開始執行Vim, i.e. 'hkmap'和'rightleft'被設定。否則, 錯誤訊息將出現, Vim會中止。
當使用viminfo檔案是enable的, 這個option設定使用檔名來取代預設的 "~/.viminfo"。這也可用來跳過 .viminfo檔案
的使用, 只要將名稱設成 "NONE"。
與-r相同。
Lisp模式。設定'lisp'和'showmatch'的options要on。
修改檔案是disable的。重設'write' option,因此沒辦法寫入檔案。
不相容的模式。重設'compatible' option。這會使Vim表現得比較好一點, 但和Vi很少相容, 即使.vimrc檔案不存在。
不使用swap檔案。毀損後的回復是不可能的。手邊如果你想編輯一個檔案在非常slow medium上(e.g. floppy)。也可用
":set uc=0"來做。用:"set uc=200"來undo。
開啟N個視窗。當N是忽略的, 每個檔案都開啟一個視窗。
Read-Only模式。'readonly'這個option會被設定。你仍然可以編輯緩衝區, 但將避免意外地覆寫到檔案裡。如果你真的
想覆寫檔案, 在Ex命令上加驚嘆號的標記, ":w!"。這個-R的option也包含-n這個option(see below)。'readonly'這個
option可以用":set noro"來重設。可參考 ":help 'readonly'"。
列出swap檔案, 並附上用來回復的資訊。
回復模式。swap檔案是用來回復一個在編輯session時毀損的檔案。swap檔是一個和text檔有相同名稱並加上".swp"副檔名
的檔案。可參考 ":help recovery"。
安靜模式。只用在Ex模式開啟或"-e" option用在"-s" option之前。
這個script檔案{scriptin}被讀取。檔案裡的字元被直譯如同你打的。用":source! {scriptin}"這個命令也可以做到。如果
在編輯器存在前到達檔案的末端, 更多的字元將從鍵盤讀取。
告訴Vim你正在用的終端機名稱。只有用在當自動化不能work時。一個終端機應該認識Vim (builtin)或已在termap或terinfo
檔案定義過。
在檔案 {vimrc}使用這個命令來初始化。所有其他的初始都跳過。用這個來編輯特殊的檔案。它也可以用"NONE"這個名稱來
跳過所有的初始化。可參考 ":help initialization"裡對Vim更多的細節。
在檔案 {gvimrc}使用這個命令來做GUI的初始化。所有其他的初始都跳過。它也可以用"NONE"這個名稱來跳過所有的GUI
初始化。可參考 ":help gui-init"裡對Vim更多的細節。
冗長的。給有關哪個檔案是來源, 讀或寫入到一個viminfo檔案的訊息。
在vi模式開始執行Vim, 就好像可執行的叫vi。這只在可執行的叫"ex"的有效。
所有你打的字元都會被錄在 {scriptout}這個檔案裡, 直到你離開Vim。如果你想創造一個script檔案可用"vim -s"或
":source!"命令, 這很有幫助。如果 {scriptout}檔案存在, 字元會附加上去。
跟-w很像, 但存在的檔案可以覆寫。
在寫入檔案時使用編碼。將會提示要求一個密碼key。
限制模式。工作用"r"開始, 就好像可執行的一樣。


表示option的末端。參數在這後面的會被當成檔名處理。這可用來編輯從'-'開始的檔名。

  1. /bin/tar :
tar zxvf xyz.1.2-3.tar.gz 將壓縮檔解壓縮, z為用ungzip, x為解壓縮, v為列出處理過的檔案, f為使用壓縮檔xyz.1.2-3.tar.gz
若壓縮檔沒有.gz的話則表示沒有壓縮過, 則只需將z拿掉。若是以bz2壓縮的話, 則將z換成I。
tar cf archive.tar foo bar 製造一個內含foo和bra檔的壓縮檔, 但未經壓縮, 若要壓縮加上z
tar tvf archive.tar 繁瑣地列出所有縮檔裡的檔案



TAR
a.所在路徑
/bin/
b.所使用的shared library
使用libc.so.6 置於 /lib/libc.so.6
使用/lib/ld-linux.so.2 置於 /lib/ld-linux.so.2 c.主要用途說明
tar主要是用來壓縮檔案的, 可將一個目錄下所有的檔案壓縮成一個檔案, 但是沒有空間壓縮的功能, 也就是說壓縮後的檔案大小和此目錄所有檔案大小的和是一樣的, 也可以說tar是將檔案打包起來的, 因為tar並不能壓縮大小,所以通常都配合gzip一起使用, 來將許多檔案包成一個並減少大小

語法
tar [-option...] filename1 [ filename2, ... filenameN ] tar [-option...] directory1 [ directory2, ...directoryN ]

通常用的方法是
壓縮

tar -zcvf tarfile.tar.gz dir/
如此可將dir目錄下的所有檔案壓成一個壓縮檔 這適用tar打包後再由gzip壓縮的結果 若不想經過gzip壓縮, 則z參數不要加, 檔案名稱也少去.gz 如 tar -cvf tarfile.tar dir/

解壓縮

tar -zxvf tarfile.tar.gz 如此便會將原本壓縮好的檔案還原回去 另外z是代表搭配gzip使用, z配合c是表示壓縮檔案, 而z配合x則是解壓縮

d.支援的參數及意義

-c 產生一個壓縮檔
-z 配合c是使目錄tar起來後再用gzip把該檔案壓縮起來, 配合x則是代表再用gzip解壓縮 -f 代表要使用壓縮檔名 tarfile.tar.gz 作壓縮後的檔名 -v 會把壓縮的過程顯示在螢幕上
-A 把tar過的檔案收集歸檔到archive -d 找出achive和檔案系統的差異
--delete 將檔案從archive中刪去
-r 將檔案增添到archive的結尾
-t 列出archive中的內容
--atime-preserve 在轉存檔案時不更改存取的時間 -b, --block-size N 將block size射程512*N bytes,預設值為20 -C, --directory DIR 將目錄切換到DIR -i, --ignore-zeros 忽略檔案中大小為零的block, 此block通常是eof -I, --bzip 將檔案配合gzip2使用
-k, --keep-old-files 保留存在的檔案, 不把他們從archive中覆寫掉 -K, --starting-file F 由archive中的F檔案開始 -N, --after-date DATE, --newer DATE 只儲存日期比DATE新的檔案 -O, --to-stdout 將檔案解壓縮成標準輸出 -P, --absolute-paths 不從檔案名稱中列出前面的/ -R, --record-number 顯示每一個訊息在archive中的紀錄號碼 --remove-files 在檔案加入archive後將其刪去


e.使用範例

tar -zcf mymail.tar.gz MAIL/ 將郵件目錄中的檔案都壓縮成mymail.tar.gz tar -cvf mydata.tar DATA/ 將資料所在目錄中的所有檔案打包成mydata.tar檔, 並在螢幕上顯示壓縮過程,但不經過gzip壓縮 tar -xvf mydata.tar 將mydata中的檔案解壓縮出來