Unix/命令/檔案分析指南
file 顯示檔案型別。 要獲得 mimetype,請使用 -i 選項。
示例
$ file Unix.txt Unix.txt: ASCII text
$ file -i Unix.txt Unix.txt: text/plain; charset=us-ascii
連結
wc 告訴你檔案中的行數、單詞數和字元數。
示例
$ wc hello.txt 2 6 29 hello.txt
$ wc -l hello.txt 2 hello.txt
$ wc -w hello.txt 6 hello.txt
$ wc -c hello.txt 29 hello.txt
連結
輸出檔案、檔案或標準輸入的 32 位迴圈冗餘校驗 (CRC) 校驗和的特定變體,以及大小;在最新的 GNU Coreutils 和一些其他實現中,它可以透過 -a 選項輸出其他校驗和。這種 32 位 CRC 的變體不同於 zip、PNG 和 zlib 使用的 CRC-32;一方面,cksum 不僅根據檔案或輸入的八位位元組流計算 CRC,而是根據追加了流長度的流計算 CRC。
cksum 輸出的 CRC 可用於防止對檔案進行意外修改:如果校驗和沒有改變,則檔案很可能沒有損壞。預設的 CRC 校驗和不是加密的:它只防範非惡意(有意)的修改。
最新的 GNU Coreutils cksum 允許透過 -a 選項從多種不同的校驗和型別中進行選擇,包括加密校驗和。其中包括 sysv、bsd、crc、md5、sha1、sha224、sha256、sha384、sha512、blake2b 和 sm3。這些校驗和都不屬於 zip、PNG 和 zlib 的 CRC-32。OpenBSD cksum 也提供 -a 選項,而演算法列表略有不同。FreeBSD cksum 允許透過 -o1、-o2 和 -o3 選項選擇三種校驗和演算法之一,除了預設演算法之外;-o3 是 zip、PNG 和 zlib 的 CRC-32;這也適用於 macOS。
示例
$ cksum /etc/passwd 3052342160 2119 /etc/passwd
一些“cksum”實現提供其他演算法,例如“md5”和“sha1”
$ cksum -a sha1 /etc/passwd SHA1 (/etc/passwd) = 816d937ca4cdb4dee92d5002610fae63b639d224
你可以透過標準輸入將字串提供給“cksum”來測試它
$ printf 'Guide to UNIX'|cksum 2195826759 13
連結
- cksum, opengroup.org
- sum 手冊頁, man.cat-v.org
- cksum, freebsd.org
- 6.3 cksum 在 GNU Coreutils 手冊中,gnu.org
- cksum, openbsd.org
- cksum, wikipedia.org
- 引數化 CRC 演算法目錄, reveng.sourceforge.io
- cksum.c 在 coreutils 中,github.com
- cksum 資料夾 在 file_cmds-188 中,opensource.apple.com
一個遺留工具,輸出檔案、檔案或標準輸入的某種校驗和,以及大小。它沒有被 POSIX 覆蓋;POSIX 將 #cksum 作為替代工具進行了規範,使用的是與遺留 sum 使用的校驗和不同的校驗和型別。遺留 sum 的不同變體使用不同的演算法。FreeBSD cksum 透過 -o1 和 -o2 選項,以及最新的 GNU Coreutils cksum 透過 -a 選項提供遺留 sum 使用的變體演算法。
GNU Coreutils sum 允許透過 -r 和 -s 選項選擇遺留演算法。
兩種常用的遺留演算法如下所示。
BSD sum,在 GNU sum 中為 -r
- 將校驗和初始化為 0
- 對於輸入流的每個位元組
- 對校驗和執行 1 位的 16 位按位右迴圈移位
- 將位元組新增到校驗和,並將結果應用於模 2 ^ 16,從而將其保持在 16 位之內
- 結果是一個 16 位校驗和
System V sum,在 GNU sum 中為 -s
- checksum0 = 輸入流中所有位元組的總和模 2 ^ 32
- checksum1 = checksum0 模 2 ^ 16 + checksum0 / 2 ^ 16;
- checksum = checksum1 模 2 ^ 16 + checksum1 / 2 ^ 16;
- 結果是一個 16 位校驗和,由最初的 32 位普通位元組總和計算得出
連結
- cksum, opengroup.org
- sum 手冊頁, man.cat-v.org
- cksum, freebsd.org
- 6.2 sum 在 GNU Coreutils 手冊中,gnu.org
- sum (Unix), wikipedia.org
- sum.c 在 coreutils 中,github.com
- sum1.c 在 freebsd-src 中,github.com
- sum2.c 在 freebsd-src 中,github.com
- sum.c 在第七版 Unix 中,tuhs.org
輸出檔案或檔案系統狀態,包括大小、訪問許可權、建立和修改時間等。該命令似乎在 POSIX 中不存在;POSIX 只指定了系統呼叫 stat()。
連結
輸出匹配正則表示式、不匹配正則表示式以及類似內容的行,具體取決於選項和使用的正則表示式。 請參見 Grep 華夏公益教科書。
連結
- grep, opengroup.org
- grep 手冊頁, man.cat-v.org
- grep, freebsd.org
- GNU Grep 3.0, gnu.org
逐行比較兩個檔案的檔案內容,並輸出差異。另請參見 diff3。
連結
逐行比較三個檔案的原始內容並輸出差異。另見 diff。
連結
逐位元組比較檔案,輸出第一個差異所在的位元組數和行號(如果有)。如果檔案是二進位制完全相同的,則不輸出任何內容。除非使用 -l 選項,否則不會顯示第一個差異之後的進一步差異。
連結
輸出檔案中找到的可列印字串,在這些檔案是二進位制檔案時很有用。
連結
- strings,opengroup.org
- strings,freebsd.org
- strings 在 GNU 二進位制工具 中,sourceware.org
- W:strings (Unix)