進階副本:Linux下cp、mv命令添加進度條

GNU cp GNU mv 這些工具用於在 GNU/Linux 操作系統中復制和移動文件和目錄。 這兩個實用程序缺少的一項功能是它們不顯示任何進度條。 如果你複製一個大文件或目錄,你真的不知道複製過程需要多長時間才能完成或複制的數據百分比。 您將看不到當前正在復制哪個文件或已經復制了多少文件。 您將看到的只是閃爍的光標和硬盤驅動器 LED 指示燈。 謝謝進階文案一個補丁 Gnu Coreutils 現在我們可以將進度條添加到 cp mv Linux 中的命令並在復制和/或移動大文件和目錄時顯示進度條。

Advanced Copy 是 GNU cp GNU mv 程序 添加進度條並提供有關複製或移動文件和文件夾時發生的情況的信息。 不只是進度條,它還顯示數據傳輸速率、估計剩餘時間和當前正在復制的文件的名稱。 最後,您將看到一個簡短的摘要,說明復制了多少文件以及復制這些文件所花費的時間。

安裝“高級複製”補丁以在 Linux 上為 cp 和 mv 命令添加進度條

cp 和 mv 命令是 GNU coreutils . 所以你需要下載最新的 GNU coreutils 這裡 .

                      
                        $ wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
                      
                    

使用以下命令提取下載的文件:

                      
                        $ tar xvJf coreutils-8.32.tar.xz
                      
                    

此命令會將 coreutils 文件提取到名為 coreutils-8.32 在當前目錄中。 裡面的光盤:

                      
                        $ cd coreutils-8.32/
                      
                    

使用以下命令下載高級複製補丁:

                      
                        $ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
                      
                    

最後,通過一條一條運行以下命令來應用補丁:

                      
                        $ patch -p1 -i advcpmv-0.8-8.32.patch
                      
                    
                      
                        $ ./configure
                      
                    
                      
                        $ make
                      
                    

現在有兩個新的修補二進製文件即。 cp mv 將創建在 coreutils-8.32/src 文件。 只需將它們複製到您的 $PATH 中,如下所示:

                      
                        $ sudo cp src/cp /usr/local/bin/cp
                      
                    
                      
                        $ sudo cp src/mv /usr/local/bin/mv
                      
                    

就這樣。 這 cp mv 命令現在具有進度條功能。

每當您在復製或移動文件和目錄時想要進度條時,只需添加 -g 標誌如下:

                      
                        $ cp -g archlinux.iso mydownload/
                      
                    

或使用 --progress-bar 旗幟:

                      
                        $ cp --progress-bar archlinux.iso mydownload/
                      
                    

示例輸出:

                      
                        Copying at  25.7 MiB/s (about 0h 0m 1s remaining)
archlinux.iso                                                          568.1 MiB / 646.0 MiB
[=========================================================================>                  ] 87.9 %

                      
                    
在 Linux 中為 cp 和 mv 命令添加進度條

在復製過程結束時,您將看到復制了多少文件、複製文件花費了多長時間以及每秒的數據傳輸速率。 很好,不是嗎?

                      
                        1 files (646.0 MiB) copied in 11.8 seconds ( 54.7 MiB/s).
                      
                    

要遞歸複製目錄及其子目錄,只需添加 -R 旗幟:

                      
                        $ cp -gR directory1/ directory2/
                      
                    

同樣,要使用移動文件 mv 命令,運行:

                      
                        $ mv -g archlinux.iso mydownload/
                      
                    

或使用 --progress-bar 旗幟:

                      
                        $ mv --progress-bar archlinux.iso mydownload/
                      
                    

移動目錄 mv 命令,使用:

                      
                        $ mv -g directory1/ directory2/
                      
                    

您還可以創建別名來保存一些擊鍵。 為此,編輯 ~/.bashrc 程序:

                      
                        $ nano ~/.bashrc
                      
                    

在末尾添加以下行:

                      
                        alias cp='/usr/local/bin/cp -gR'
alias mv='/usr/local/bin/mv -g'
                      
                    

Ctrl+o Ctl+x 保存並關閉文件。

現在運行以下命令使更改生效:

                      
                        $ source ~/.bashrc
                      
                    

從現在開始,您只能使用 cp 任何一個 mv 命令沒有 -g (任何一個 --progress-bar ) 旗幟。

請注意,原始程序不會被覆蓋。 您仍然可以隨時通過 /usr/bin/cp 任何一個 /usr/bin/mv .

添加進度條功能 cp mv 如果您經常複製或移動大量大文件和目錄,使用 commands 是個好主意。 現在您可以準確地看到復制和移動文件時發生的情況,而無需查看屏幕。

筆記:

原作者將補丁提交給維護 GNU CoreUtils 的團隊。 他們不會合併這個補丁,因為 mv 和 cp 具有完整的功能。

資源:

相關閱讀:

  • gcp:用於 Linux 的高級文件複製實用程序
  • 如何使用“pv”命令通過管道監視數據的進度

相關文章