linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝
GNU cp和GNU mv命令用于在GNU/Linux操作系統(tǒng)中復(fù)制和移動(dòng)文件和目錄。這兩個(gè)命令缺少的一個(gè)特性是它們不顯示任何進(jìn)度條。如果復(fù)制一個(gè)大文件或目錄,您就不知道完成復(fù)制過程需要多長時(shí)間,也不知道復(fù)制的數(shù)據(jù)所占的百分比。還有您將看不到當(dāng)前正在復(fù)制哪個(gè)文件或者已經(jīng)復(fù)制了多少個(gè)文件。你將看到的只是閃爍的光標(biāo)和硬盤驅(qū)動(dòng)器LED指示燈。多虧了Advanced Copy (Gnu Coreutils的一個(gè)補(bǔ)丁),我們現(xiàn)在可以在Linux中的cp和mv命令中添加進(jìn)度條,并在復(fù)制和/或移動(dòng)大文件和目錄時(shí)顯示進(jìn)度條。
高級(jí)拷貝(Advanced Copy)是GNU cp和GNU mv程序的一個(gè)模塊。它會(huì)添加一個(gè)進(jìn)度條,并提供一些有關(guān)復(fù)制或移動(dòng)文件和文件夾時(shí)發(fā)生情況的信息。不僅是進(jìn)度條,它還顯示數(shù)據(jù)傳輸速率、估計(jì)剩余時(shí)間和當(dāng)前正在復(fù)制的文件名。最后,您將看到一個(gè)簡短的摘要,說明復(fù)制了多少個(gè)文件以及復(fù)制這些文件所用的時(shí)間。
安裝“Advanced Copy”補(bǔ)丁,將進(jìn)度條添加到Linux的cp和mv命令中
cp和mv命令是GNU coreutils的一部分。所以你需要從這里下載最新的GNU源代碼。
linuxmi@linuxmi:~/www.linuxmi.com$?wget?http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
使用命令解壓下載檔案:
linuxmi@linuxmi:~/www.linuxmi.com$?tar?xJf?coreutils-8.32.tar.xz
這個(gè)命令將在當(dāng)前目錄中提取一個(gè)名為coreutils-8.32的文件夾中的coreutils存檔。cd進(jìn)去:
linuxmi@linuxmi:~/www.linuxmi.com$?cd?coreutils-8.32/
使用以下命令下載Advanced Copy補(bǔ)丁:
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?wget?https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
最后,通過逐個(gè)運(yùn)行以下命令應(yīng)用補(bǔ)丁:
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?patch?-p1?-i?advcpmv-0.8-8.32.patch
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?./configure
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?make
現(xiàn)在將在coreuths -8.32/src文件夾中創(chuàng)建兩個(gè)新的補(bǔ)丁二進(jìn)制文件cp和mv。只需像下面這樣將它們復(fù)制到你的$PATH:
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?sudo?cp?src/cp?/usr/local/bin/cp
[sudo]?linuxmi?的密碼:
linuxmi@linuxmi:~/www.linuxmi.com/coreutils-8.32$?sudo?cp?src/mv?/usr/local/bin/mv
就這樣。cp和mv命令現(xiàn)在有了進(jìn)度條功能。
當(dāng)你在復(fù)制或移動(dòng)文件和目錄時(shí)想要一個(gè)進(jìn)度條,只需添加 -g 標(biāo)簽,如下所示:
linuxmi@linuxmi:~/www.linuxmi.com$?cp?-g?/home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso?/home/linuxmi/www.linuxmi.com/
或者使用 --progress-bar 標(biāo)簽:
linuxmi@linuxmi:~/www.linuxmi.com$?cp?--progress-bar?/home/linuxmi/Fedora-Silverblue-ostree-x86_64-32-1.6.iso?/home/linuxmi/www.linuxmi.com/
樣例輸出如下圖:
在Linux中向cp和mv命令添加進(jìn)度條
在復(fù)制過程的最后,您將看到復(fù)制了多少文件,復(fù)制文件花費(fèi)了多長時(shí)間,以及每秒的數(shù)據(jù)傳輸速率。怎樣,很不錯(cuò)吧?
1?files?(?2.5?GiB)?copied?in?42.0?seconds?(?61.1?MiB/s).
要遞歸復(fù)制一個(gè)目錄及其子目錄,只需添加-R標(biāo)志:
$?cp?-gR?directory1/?directory2/
類似地,使用mv命令移動(dòng)文件,運(yùn)行:
$?mv?-g?archlinux.iso?mydownload/
或者,使用--progress-bar標(biāo)志:
$?mv?--progress-bar?archlinux.iso?mydownload/
使用mv命令移動(dòng)目錄:
$?mv?-g?directory1/?directory2/
您還可以編輯~/.bashrc文件創(chuàng)建別名來節(jié)省幾個(gè)按鍵:
$?nano?~/.bashrc
在末尾添加以下幾行:
aliascp='/usr/local/bin/cp?-gR'
alias?mv='/usr/local/bin/mv?-g'
按Ctrl+o和Ctl+x保存和關(guān)閉文件。
現(xiàn)在運(yùn)行以下命令使更改生效:
$?source?~/.bashrc
從現(xiàn)在開始,您可以只使用cp或mv命令,而不需要使用 -g (或 --progress-bar)標(biāo)志。
請(qǐng)注意,原始程序沒有被覆蓋。您仍然可以在任何時(shí)候通過/usr/bin/cp或/usr/bin/mv調(diào)用它們
如果您經(jīng)常復(fù)制或移動(dòng)大量大文件和目錄,那么在cp和mv命令中添加進(jìn)度條功能是個(gè)很好的方法。您現(xiàn)在可以看到在復(fù)制和移動(dòng)文件時(shí)到底發(fā)生了什么,而不是時(shí)時(shí)盯著屏幕。
【編輯推薦】
【責(zé)任編輯:龐桂玉 TEL:(010)68476606】
點(diǎn)贊 0
總結(jié)
以上是生活随笔為你收集整理的linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java制作五子棋的论文,基于java的
- 下一篇: doip 源码_DoIP—协议框架