我想我可以將源目錄中的文件數量與cp進展時目標目錄中的文件數量進行比較,也可以使用文件夾大小進行比較?我試圖找到示例,但所有bash進度條似乎都是爲複製單個文件而編寫的。我想複製一堆文件(或者一個目錄,如果前者是不可能的)。如何製作進度條(cp複製目錄)?
回答
您可能會看到工具vcp
。這是一個簡單的複製工具,帶有兩個進度條:一個用於當前文件,另一個用於整體。
編輯
這裏是鏈接到源:http://members.iinet.net.au/~lynx/vcp/ 聯機幫助頁可以在這裏找到:http://linux.die.net/man/1/vcp
大多數分佈有一個包吧。
我希望有些東西不需要編譯外部工具。我只想看到我的目錄被複制。這真的很難嗎? – octosquidopus
@Anonymouse添加了第二個答案,也許這將是您的替代方案。但這是我最後的想法:( –
如下所述,rsync可用於所有系統(甚至Mac OS),而不是vcp。 – Adrien
這裏另一種解決方案:使用工具bar
你可以調用它是這樣的:
#!/bin/bash
filesize=$(du -sb ${1} | awk '{ print $1 }')
tar -cf - -C ${1} ./ | bar --size ${filesize} | tar -xf - -C ${2}
你必須去在焦油的方式,這將是小文件不準確的。你也必須注意目標目錄的存在。但這是一種方式。
早些時候,我想在移動文件夾之前先對文件夾進行去皮處理,但認爲它在優雅中缺少太多。我錯了,它按預期工作,在某些情況下可能是更好的解決方案。謝謝! – octosquidopus
有一個工具pv
做這個確切的事情:http://www.ivarch.com/programs/pv.shtml
有在容易
要顯示一個進度條,而這樣做的文件&文件夾&子文件夾(包括鏈接和文件屬性),你可以使用gcp
的遞歸複製(通過運行容易安裝在Ubuntu和Debian的「命令和apt-get安裝GCP」) :
gcp -rf SRC DEST
這裏是典型的輸出,同時複製文件的一個大文件夾:
Copying 1.33 GiB 73% |##################### | 230.19 M/s ETA: 00:00:07
注意,它顯示了整個操作只需一個進度條,而如果你想每個文件一個進度條,你可以使用rsync
:
rsync -ah --progress SRC DEST
gcp是基於Python的。請不要在生產中使用。我沒有檢查,但似乎不支持硬鏈接,特殊屬性等。 – socketpair
gcp在遠程終端中不起作用(例如通過ssh)。 –
一個簡單的UNIX方法就是去到目標目錄並做watch -n 5 du -s
。也許通過顯示爲一個酒吧讓它更漂亮。這可以在你只有標準的unix utils而沒有安裝額外文件的環境中提供幫助。 du-sh是關鍵,手錶是每5秒鐘做一次。 優點:適用於任何UNIX系統缺點上:沒有進度條
我的首選是Advanced Copy,因爲它使用的原cp
源文件。現在
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz
$ tar xvJf coreutils-8.21.tar.xz
$ cd coreutils-8.21/
$ wget --no-check-certificate https://raw.githubusercontent.com/atdt/advcpmv/master/advcpmv-0.5-8.21.patch
$ patch -p1 -i advcpmv-0.5-8.21.patch
$ ./configure
$ make
新的程序放在src/CP和src/MV。您可以選擇替換現有的命令:
$ sudo cp src/cp /usr/local/bin/cp
$ sudo cp src/mv /usr/local/bin/mv
zwicke.org上的補丁鏈接已損壞,但位於https://github.com/atdt/advcpmv的github上。也許比我更熟練的人會更新@ elboletaire的步驟。 – Setaa
我可以做到這一點,感謝修補程序的鏈接 – elboletaire
如何像
find . -type f | pv -s $(find . -type f | wc -c) | xargs -i cp {} --parents /DEST/$(dirname {})
它發現在當前目錄下的所有文件,管道,雖然給予通過PV PV的估計大小等等進度表工作,然後使用--parents標誌將其傳遞給CP命令,以便DEST路徑與SRC路徑相匹配。
的一個問題,我還沒有克服的是,如果您發出此命令
find /home/user/test -type f | pv -s $(find . -type f | wc -c) | xargs -i cp {} --parents /www/test/$(dirname {})
目標路徑變爲/ WWW /測試/首頁/用戶/測試/ ....文件...和我我不確定如何告訴命令擺脫'/ home/user/test'部分。這就是爲什麼我必須從SRC目錄內運行它。
- 1. MacOS:xargs cp不會複製子目錄
- 2. 如何在複製或查詢中製作進度條?
- 3. 使用進度條複製項目
- 4. 複製進度條不起作用
- 5. Xamarin.UWP:如何製作圓形進度條
- 6. 如何使用printf製作「進度條」?
- 7. 如何用虛線製作進度條?
- 8. 如何用jquery製作進度條?
- 9. 如何製作「啞」進度條?
- 10. C#製作進度條
- 11. 製作虛擬進度條
- 12. CP:忽略目錄「off_web」當我複製我的,項目
- 13. 如何在登錄時製作進度條
- 14. 如何製作類似iPhone進度條的進度條和進度對話框?
- 15. 製作控制檯進度條? (Windows)
- 16. 如何複製目錄?
- 17. 保存目錄樹,同時複製文件與cp
- 18. 目錄複製?
- 19. 複製帶有進度條的文件
- 20. RDS快照複製的Python進度條
- 21. 進度條和文件複製問題?
- 22. PyQt文件複製進度條
- 23. 的cp複製命令
- 24. cp複製wxPython空間
- 25. 如何使用cp從不同的目錄複製多個文件?
- 26. 如何製作帶有圓形加載條的Android進度條?
- 27. JQuery UI:如何使用進度條製作水平條形圖?
- 28. 如何按特定順序製作Gradle複製源目錄?
- 29. mysql複製條目
- 30. 如何製作具有計算寬度的進度條
你打[猛砸FAQ#44](HTTP:// mywiki .wooledge.org/BashFAQ/044)。看一看,看看有沒有什麼有用的建議。 – jw013