我需要在我的 Linux 机器上复制大文件。
例子:
cp source.txt target.txt
Run Code Online (Sandbox Code Playgroud)
我想创建进度条,以显示每个副本文件上的副本仍在进行中
例子”
cp file file1
Run Code Online (Sandbox Code Playgroud)
复制文件 > 文件 1 .....................
cp moon mars
Run Code Online (Sandbox Code Playgroud)
复制月亮>火星......
简而言之,您找不到cp
进度条输出的本机功能。为什么? 很多原因。但是,您有一些选择:
使用不同的工具。 rsync
,正如@user1404316 所提到的--progress
:
rsync -P largeFile copyLocation
Run Code Online (Sandbox Code Playgroud)如果你不需要额外的语义cp
和rsync
照顾,创建一个新的文件pv
通过重定向(“管子查看器”) stdout
:
pv < largeFile > copyLocation
Run Code Online (Sandbox Code Playgroud)如果您确实需要额外的语义,则可以使用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
Run Code Online (Sandbox Code Playgroud)另一种选择是gcp
,它完全符合您使用进度条的要求:
gcp largeFile copyLocation
Run Code Online (Sandbox Code Playgroud)另一个选项滥用curl
了处理file://
url的能力:
curl -o copyLocation file:///path/to/largeFile
Run Code Online (Sandbox Code Playgroud)你可以写一个shell脚本
归档时间: |
|
查看次数: |
7474 次 |
最近记录: |