Command-Line
如何將大文件與進度資訊進行比較
在 Unix 命令行上下文中,我想比較兩個真正巨大的文件(每個大約 1TB),最好使用進度指示器。
我試過
diff
andcmp
,它們都使系統崩潰(macOS Mojave),更不用說給我一個進度條了。比較這些非常大的文件的最佳方法是什麼?
額外細節:
- 我只想檢查它們是否相同。
cmp
以系統確實自行重新啟動的方式使系統崩潰。:-( 也許系統記憶體不足?
您可以將
pv
其用作進度指示器,並將其傳遞給shasum
函式以檢查雜湊值是否相同。pv file1 | shasum 1.08MiB 0:00:00 [57.5MiB/s] [====================================>] 100% 303462e848ecbec5f8ab12718fa6239713eda1c6 - pv file2 | shasum 1.08MiB 0:00:00 [57.5MiB/s] [====================================>] 100% 303462e848ecbec5f8ab12718fa6239713eda1c6 -
如果您想獲取有關它們相同或不同的事實的資訊,則一種可能的方法是使用雜湊。像這樣的命令會給你
sha1
文件的雜湊值:shasum file1 file2
預期的結果是這樣的:
ddfdb3a7fc6fc7ca714c9e2930fa685136e90448 file1 ddfdb3a7fc6fc7ca714c9e2930fa685136e90448 file2