File-Copy

如何在復製文件期間創建進度條

  • February 27, 2018

我需要在我的 Linux 機器上複製大文件。

例子:

cp source.txt target.txt

我想創建進度條,以顯示每個副本文件的副本仍在進行中

例子”

cp file file1

複製文件 > 文件 1 ………

cp moon mars

複製月亮>火星…….

簡而言之,您不會找到cp進度條輸出的本機功能。為什麼? 很多原因。但是,您有一些選擇:

  1. 使用不同的工具。 rsync,正如@user1404316 提到的那樣--progress
rsync -P largeFile copyLocation
  1. 如果您不需要額外的語義cprsync照顧,請pv通過重定向創建一個帶有 (“Pipe Viewer”)的新文件stdout
pv < largeFile > copyLocation
  1. 如果您確實需要額外的語義,您可以使用progress,儘管它沒有具體給出條形圖。它附加到已經執行的程序,因此您可以像這樣呼叫它:
# In one shell
$ cp largeFile copyLocation

# In another shell
$ progress -m
[ 4714] cp /home/hunteke/largeFile
       1.1% (114 MiB / 10.2 GiB)      # -m tells progress to continually update
  1. 另一個選項是gcp,它完全符合您對進度條的要求:
gcp largeFile copyLocation
  1. 另一個選項濫用curl了處理file://url 的能力:
curl -o copyLocation file:///path/to/largeFile
  1. 你可以寫一個shell腳本

引用自:https://unix.stackexchange.com/questions/426849