Shell
Linux 等效於 windows cmd 命令
我正在遷移到 Linux,我需要轉換以下 Windows
cmd
命令:fc file1.txt file2.txt | find /i "no se han encontrado diferencias" > nul && set equal=yes
我認為
fc
可以替換為diff
orcomm
,find
withgrep
,但我不知道如何做這&&
部分,也許是一個if
聲明……
猜測這些 Windows 命令的作用,我會說 POSIX
sh
腳本中的等價物是:equal=no cmp -s file1 file2 && equal=yes
如果可以讀取兩個文件並具有相同的內容(字節到字節),這會將
equal
變數設置為。yes
作為 的替代方案
cmp -s
,在包括基於 Linux 的系統在內的某些系統上,您可以使用diff -q
.diff -q
(q
對於quiet),與大多數cmp -s
(s
對於quiet)相反,如果無法讀取任何文件,則會報告錯誤消息。diff
雖然和的 GNU 實現cmp
首先檢查這兩個文件是否是同一個文件的路徑(包括作為另一個文件的硬連結或符號連結),或者是否具有不同的大小以節省閱讀它們的busybox
時間,cmp
但雖然busybox
diff
確實如此。因此,在那些使用 的系統上,出於性能原因busybox
,您可能更喜歡。diff -q