Cp के साथ फाइल कॉपी करते समय ट्रांसफर प्रगति और गति कैसे दिखाएं?


जवाबों:


249

हालांकि cpयह कार्यक्षमता नहीं मिली है, आप ऐसा करने के pvलिए उपयोग कर सकते हैं :

pv my_big_file > backup/my_big_file

नोट: यह विधि फ़ाइल की अनुमति और स्वामित्व खो देगी। इस तरह से कॉपी की गई फ़ाइलों में वही अनुमतियाँ होंगी जैसे कि आपने उन्हें स्वयं बनाया होगा और आप से संबंधित होंगी।

इस उदाहरण में, pvमूल रूप से फ़ाइल को stdout * में आउटपुट करता है, जिसे आप >ऑपरेटर का उपयोग करके किसी फ़ाइल में रीडायरेक्ट करते हैं । इसके साथ ही, यह टर्मिनल की प्रगति के बारे में जानकारी प्रिंट करता है जब आप ऐसा करते हैं।

यह है जो ऐसा लग रहा है:

stefano@ubuntu:~/Data$ pv my_big_file > backup/my_big_file
 138MB 0:00:01 [73.3MB/s] [=================================>] 100% 

आपको अपने सिस्टम पर  pv (वैकल्पिक रूप से, टाइप sudo apt-get install pv) स्थापित करने की आवश्यकता हो सकती है।


*: तकनीकी बिट

यूनिक्स जैसी प्रणाली में डेटा की तीन महत्वपूर्ण धाराएँ हैं: स्टडआउट (मानक आउटपुट), स्टडर (मानक त्रुटि) और स्टडिन (मानक इनपुट)। हर कार्यक्रम में तीनों होते हैं, इसलिए बोलने के लिए। >पुनर्निर्देशन ऑपरेटर एक फाइल करने के लिए कार्यक्रम उत्पादन पुनर्निर्देश। तर्कों के बिना, जैसा कि आप ऊपर देखते हैं, >किसी प्रोग्राम के मानक आउटपुट को किसी फ़ाइल में रीडायरेक्ट करता है। cpमूल रूप से कुछ भी कट्टर नहीं होता है

cat source > destination

(जहां catसिर्फ एक फ़ाइल पढ़ता है और इसे stdout में प्रिंट करता है)। pvबिल्ली की तरह है, लेकिन अगर आप इसे कहीं और आउटपुट स्ट्रीम पुनर्निर्देशित करते हैं, तो यह प्रगति सूचना को इसके बजाय stdout में प्रिंट करेगा।

man pvइसके बारे में अधिक जानने के लिए एक नज़र डालें ।


एक अन्य विकल्प, जैसा कि वैकल्पिक शब्दDoR इस उत्तर में बताता है , इसके बजाय rsync का उपयोग करना है:

$ rsync -ah --progress source-file destination-file
sending incremental file list
source-file
        621.22M  57%  283.86MB/s    0:00:01

यह प्रगति दिखाते हुए फाइलों की अनुमति / स्वामित्व को संरक्षित करेगा।


3
यह (स्थिति के आधार पर) महत्वपूर्ण हो सकता है या नहीं हो सकता है, लेकिन pvअनुमतियों को उसी तरह से हैंडल नहीं करता है जैसे कि cpकरता है ... (एक त्वरित परीक्षण के आधार पर मैंने कोशिश की: pvनिष्पादित बिट को कॉपी नहीं rsyncकिया था ..
पीटर

45
IMO: alias cp="rsync -avz"cp पुराना है।
मार्को Ceppi

11
तुम मुझे पसंद कर रहे हैं, और के बारे में भूल तो pv, आप में ताक-झांक जा सकते हैं /proc/PID of cp/fdऔर /proc/PID of cp/fdinfoप्रगति यह पता लगाने की। (यह आपको गति का अनुमान लगाने के लिए है।) मैं देखने के लिए इस तकनीक का उपयोग करता हूं updatedb
थानाटोस

11
हाँ, -zशायद केवल नेटवर्क प्रतियों के लिए उपयोग किया जाना चाहिए; एक स्थानीय प्रति के लिए डेटा को संपीड़ित और विघटित करना शुद्ध ओवरहेड है।
मैथ्यू पढ़ें

3
@MarcoCeppi, जब निर्देशिका की प्रतिलिपि बनाने के rsyncलिए सुनिश्चित करें कि /स्रोत पथ में अनुगामी जोड़ना नहीं है (या यदि bash पूरा होने पर इसे स्वचालित रूप से वहां रखा जाए तो हटा दें)। अन्यथा आपको cp(या gcp) का उपयोग करने की तुलना में अलग परिणाम प्राप्त होंगे ।
1922 पर पियोट फाइंडसेन

185

वहाँ नहीं है यहाँ देखें क्यों। यद्यपि यह आपकी आवश्यकता से अधिक करता है, rsyncएक --progressपैरामीटर है। -aअनुमतियाँ, आदि रखेंगे, और -hमानव पढ़ा जा सके।

rsync -ah --progress source destination

आउटपुट कुछ इस तरह दिखाई देगा:

Pictures/1.jpg
      2.13M 100%    2.28MB/s    0:00:00 (xfr#5898, to-chk=1/5905)
Pictures/2.jpg
      1.68M 100%    1.76MB/s    0:00:00 (xfr#5899, to-chk=0/5905)

4
यह वर्तमान उबंटू (14.10) में बहुत अच्छा काम करता है। यह -rनिर्देशिकाओं की पुनरावृत्ति करने के लिए ध्वज का भी समर्थन करता है । इसे cp के प्रत्यक्ष प्रतिस्थापन के रूप में भी alias cp="rsync -ah --progress"
बदला

1
ओएस एक्स पर प्रफुल्लित करता है, सिस्टम के साथ शामिल टूल का उपयोग करने में सक्षम होने के बोनस के साथ।
इवान एक्स

3
मुझे यह विकल्प pv से बेहतर लगा, विशेष रूप से क्योंकि rsync मानक स्थापित का हिस्सा है
जोआओ कोस्टा

1
@bartekbrak साझा करने के लिए धन्यवाद। मैं वर्तमान में macOS 10.12.x पर rsync 3.1.2 का होमब्रेक संस्करण चला रहा हूं और --progressअपने हेड स्पिन का उपयोग करके टर्मिनल में सभी आउटपुट डिस्प्ले देख रहा हूं। तो AOL कीवर्ड खोजों से यहां आने वाले, rsync -ah --info=progress2 [source] [destination] आउटपुट को थोड़ा और अधिक तरीके से IMHO तरीके से प्रस्तुत करते हैं।
ipatch

2
दुर्भाग्य से, कई छोटी फ़ाइलों की प्रतिलिपि बनाते समय आउटपुट बहुत उपयोगी नहीं होता है।
राफेल

89

यदि आप यह देखना चाहते हैं कि क्या आपकी फाइलें सही तरीके से स्थानांतरित हो रही हैं, तो आप उपयोग कर सकते हैं gcpऔर gcpcp की तरह हैं, लेकिन डिफ़ॉल्ट रूप से आपको एक प्रगति बार देता है ताकि आप देख सकें कि क्या कॉपी किया जा रहा है। कार्यक्रम के विकी नोट्स के रूप में , gcpकई उपयोगी विशेषताएं हैं जैसे कि

  • स्थानांतरण प्रगति संकेत
  • त्रुटि पर निरंतर प्रतिलिपि (अगली फ़ाइल पर जाएं)
  • कॉपी स्टेटस लॉगिंग: gcp अपने सभी कार्यों को लॉग करता है ताकि यह पता चल सके कि किन फाइलों को सफलतापूर्वक कॉपी किया गया है
  • FATAT पर लक्ष्य फ़ाइल सिस्टम सीमाओं को संभालने के लिए नामकरण (उदाहरण के लिए असंगत वर्ण "*" या "?"

हालाँकि, जब टूल का उपयोग करते समय प्रगति बार 100% तक पहुंच गया है, तो आपको तब तक इंतजार करना होगा जब तक कि आपका टर्मिनल प्रॉम्प्ट आपके मीडिया को सुरक्षित रूप से हटाने से पहले फिर से प्रकट न हो जाए ताकि आप यह सुनिश्चित कर सकें कि स्थानांतरण प्रक्रिया सफलतापूर्वक समाप्त हो गई है।

gcpका उपयोग फ़ाइलों को कॉपी करने के लिए किया जाता है और इस तरह के विकल्प होते हैं --preserveताकि विभिन्न विशेषताओं और अनुमतियों को संरक्षित किया जा सके और --recursiveताकि पूरी निर्देशिका को कॉपी किया जा सके। इसके विकल्पों के बारे में अधिक जानकारी उबन्टु मानपेज मेंman gcp जाकर दर्ज करके या ऑनलाइन प्राप्त की जा सकती हैइस साइट पर एक ट्यूटोरियल भी उपलब्ध है ।

के gcpसाथ रिपॉजिटरी से स्थापित करें

sudo apt-get install gcp

( नोट : उबंटू 12.10 में नया ऑटोमाउंट प्वाइंट है, उदाहरण के लिए, /media/user/usbdisk)

आप एक फ़ाइल को अपने मीडिया में प्रवेश करके कॉपी कर सकते हैं

gcp /home/mike/file.mp4 /media/usb

और अपने मीडिया के साथ एक फ़ोल्डर कॉपी करें

gcp -rv ~/Podcasts /media/Mik2

gcpप्रगति बार के साथ नमूना आउटपुट :

gcp ~/Videos_incIplayer/mars.flv /media/Mik2
Copying 168.57 MiB 100% |########################################################|   7.98 M/s Time: 00:00:22

आप निश्चित रूप से अपनी डिस्क पर कॉपी करने के लिए कई फ़ाइलों या फ़ोल्डरों को निर्दिष्ट कर सकते हैं, और इसमें कई अन्य विकल्प शामिल हैं man gcp


4
इसके साथ ssh पर त्रुटि मिलीdbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
msa7

3
यदि आपके पास मशीन पर एक X11 डिस्प्ले खुला है जिसे आप केवल export DISPLAY=:0.0gcp शुरू करने से पहले सेट कर सकते हैं । यदि मशीन हेडलेस है, तो आपको एक वर्चुअल फ्रेमबफ़र या किसी चीज़ में एक xsession शुरू करना होगा, उस बिंदु पर आपको शायद किसी अन्य प्रोग्राम की तलाश करनी चाहिए
user292067

2
gcpबहुत सभ्य है, लेकिन DBUS / X आवश्यकता विषम है। मैंने SSH को ssh अग्रेषण का उपयोग करके इसे संभाला: ssh -X user@hostऔर उसने मुझे इसे चलाने की अनुमति दी।
ओली

68

मुझे इस सटीक उद्देश्य के लिए CURL का उपयोग करने से एक किक मिलती है। मैन पेज "FILE" प्रोटोकॉल को समर्थित के रूप में सूचीबद्ध करता है, इसलिए इसे URL में किसी भी अन्य प्रोटोकॉल की तरह उपयोग करें:

curl -o destination FILE://source

गति, प्रगति, शेष समय, और अधिक - सभी एक परिचित प्रारूप में।


1
यह विशेष रूप से उन वातावरणों में बहुत अच्छा है जहाँ आपको नए उपकरण स्थापित करने से प्रतिबंधित किया गया है और जहाँ rsync अनुपलब्ध है।

5
शानदार, यह एक ज्ञात हैक होना चाहिए!
आयनराक्लेक्स

अच्छा जवाब! चालाक!
9301293

संभवतः इसका एक ही दोष है pv, कि यह अनुमतियाँ नहीं बचाएगा।
प्लोनी

1
मिठाई! किसी निर्देशिका के लिए यह काम करने का कोई तरीका?
जोसेफ राजीव मोथा

28

हालांकि यह गति प्रदर्शित नहीं करता है, कई फ़ाइलों की प्रतिलिपि बनाते समय, कमांड का -vविकल्प cpआपको प्रगति जानकारी प्रदान करेगा। जैसे

cp -rv old-directory new-directory

10
प्रगति की जानकारी? यह सिर्फ वर्बोज़ आउटपुट है। प्रगति की जानकारी प्रदान करने के लिए आपको कम से कम अब कितनी फाइलें, या यहां तक ​​कि कौन सी फाइलें चाहिए, की प्रतिलिपि बनाने की आवश्यकता है।
जूलियन एफ वेइनर्ट

यह दिखाता है कि यह किस फ़ाइल पर है, जो कम मांग वाले मामलों में पर्याप्त हो सकती है।
ग्रिंगो सुवे

20

कर्नेल अधिकांश डेटा जैसे गति, और अक्सर प्रतिशत भी जानता है। आधुनिक गुठली अपने / खरीद फाइल सिस्टम के माध्यम से इसे उजागर करती है।

https://github.com/jnweiger/showspeed से पता चलता है कि जानकारी का उपयोग करता है। यह पहले से चल रहे कार्यक्रमों से जुड़ सकता है और इस तरह की आवधिक अपडेट दे सकता है:

$ dd if=bigfile of=/tmp/otherbigfile &
$ showspeed dd
dd looks like a process name. pid=4417 matches av0=dd.
p/4417/fd/0r /home/jw/bigfile 113MB/s (12%, 2.3GB)  9m:35
p/4417/fd/1w /tmp/otherbigfile 182MB/s (2.6GB)
p/4417/fd/0r /home/jw/bigfile 285MB/s (15%, 3.0GB)  8m:08
p/4417/fd/0r /home/jw/bigfile 115MB/s (16%, 3.2GB)  8m:01
p/4417/fd/0r /home/jw/bigfile 107MB/s (17%, 3.4GB)  7m:39
p/4417/fd/1w /tmp/otherbigfile 104MB/s (3.5GB)
p/4417/fd/0r /home/jw/bigfile 139MB/s (19%, 3.7GB)  7m:37
p/4417/fd/0r /home/jw/bigfile 116MB/s (20%, 3.9GB)  7m:18
p/4417/fd/1w /tmp/otherbigfile  67MB/s (4.0GB)
p/4417/fd/1w /tmp/otherbigfile 100MB/s (4.1GB)
...

अच्छा है। हालांकि यह प्रतिशत बाहर कैसे काम करता है? मैं केवल फ़ाइल के मामले में अनुमान लगाता हूं कि क्या केवल पढ़ने के लिए खुला है? और यह शायद बिखरे हुए उपयोग के मामले में काम नहीं करेगा।
j_kubik

1
इस स्थिति में आप अपनी स्थिति दिखाने के लिए चलाने के pkill -USR1 ddलिए किसी अन्य टर्मिनल का भी उपयोग कर सकते हैं dd, दूसरा विकल्प यह होगा कि watch -n 1 pkill -USR1 ddवह समय-समय पर (हर सेकंड) अपनी प्रगति दिखाए।
यार्न

सही। कई उपकरणों को समय के साथ आंकड़ों की रिपोर्ट करने का एक अंतर्निहित तरीका मिला। dd कोई अपवाद नहीं है। आधुनिक कार्यान्वयन में एक स्थिति = सही विकल्प है। शोस्पीड एक क्लासिक यूनिक्स शैली है "एक उद्देश्य के लिए एक उपकरण" समाधान - पी.वी. की तरह। लेकिन इसमें अलग-अलग यूज़ेस हैं: भूतों के माध्यम से एक फ़ाइल को जोड़ने वाले कप के बारे में सोचें या आप चल रहे सीपी या टार के लिए ईटीए जानना चाहते हैं। यह 95% कुछ घंटों के बाद पहले से ही हो सकता है और आप शायद इसे पुनः आरंभ नहीं करना चाहते हैं, बस pv को जोड़ने के लिए ... बिखरे हुए पहुंच अच्छी तरह से काम नहीं करेगा। Showpeed केवल नमूने स्थितियों की तलाश करते हैं।
जर्गेन वीगर्ट

18

progressरिपॉजिटरी में एक उपकरण है जिसे विभिन्न विभिन्न कमांडों की जांच करने और उनके लिए प्रगति की जानकारी प्रदर्शित करने में सक्षम है।

कमांड का उपयोग करके इसे स्थापित करें

sudo apt-get install progress

इस उपकरण का उपयोग इस तरह किया जा सकता है:

cp bigfile newfile & progress -mp $!

आउटपुट:

[11471] cp /media/Backup/Downloads/FILENAME.file 
        29.9% (24.2 MiB / 16 MiB)

12

जबकि pvस्थानीय के साथ सौदा कर सकते हैं cpकार्यों, का उपयोग कर ddके साथ pvदोनों को स्थानीय (के साथ सौदा कर सकते हैं cp) और दूरदराज के ( scp) कार्य।

dd if=path/to/source.mkv | pv | dd of=path/to/dest.mkv

कृपया path/to/dest.mkvद्वारा निकास सुनिश्चित करेंtouch path/to/dest.mkv

यह प्रगति दिखा सकता है, लेकिन यदि आप प्रतिशत जानकारी चाहते हैं,

dd if=path/to/source.mkv | pv -s 100M | dd of=path/to/dest.mkv

100Mअपनी स्रोत फ़ाइल के वास्तविक आकार के साथ ऊपर बदलें ।

यहाँ रिमोट पार्ट आता है

जबकि scpशायद ही, वर्तमान प्रगति को दिखाने का उपयोग कर सकते हैं ddके साथ pvकेक का एक टुकड़ा है।

ssh onemach@myotherhost dd if=path/to/source.mkv | pv -s 100M | dd of=path/to/dest.mkv


11

Cv नामक एक नया टूल है जो एक रनिंग कमांड से संबंधित किसी भी डिस्क्रिप्टर को पा सकता है और प्रगति और गति दिखा सकता है: https://github.com/Xfennec/cv

cv -w

सभी चल रहे cp, mv आदि परिचालनों के लिए आँकड़े को आउटपुट करता है


watch cv -qयहाँ तक कि neater
nwgat

यह केवल एक व्यक्तिगत फ़ाइलों के लिए प्रगति दिखाता है, यह एहसास करता है कि क्या cpएक निर्देशिका की पुनरावृत्ति कॉपी कर रहा है या नहीं।
फ्लिअम

1
इसने युद्ध का नाम बदलकर प्रगति कर दिया। महान उपकरण!
सेबस्टियन

7

जैसा कि कई ने कहा, cp में यह कार्यक्षमता शामिल नहीं है।

बस अपना $ 0.02 फेंकने के लिए, जो मैं आमतौर पर तुच्छ नकल स्थितियों (यानी नहीं -R) के साथ करता हूं :

  1. देखें कि फ़ाइल कितनी बड़ी है और याद रखें

  2. नकल शुरू करो

  3. एक और टर्मिनल खोलें

  4. watch ls -lh DIRउस निर्देशिका पर चलाएँ जहाँ लक्ष्य है

यह मुझे कम से कम परेशानी के साथ, लक्षित फ़ाइल आकार पर अद्यतन रख सकता है।

कम तुच्छ स्थितियों के लिए एक विकल्प के रूप में, उदाहरण के लिए पुनरावर्ती प्रतिलिपि बनाने, आप watch du -hs DIRDIR आकार का सारांश देखने के लिए उपयोग कर सकते हैं । हालाँकि du को गणना करने में लंबा समय लग सकता है और यहां तक ​​कि प्रतिलिपि को धीमा भी कर सकता है, इसलिए आप -n INTERVALदेखने के लिए तर्क का उपयोग करना चाह सकते हैं ताकि ट्रेड-ऑफ स्वीकार्य हो।

अद्यतन: यदि आप वॉच डु के साथ उपयोग किए जाने वाले कमांड के साथ वाइल्ड-कार्ड का उपयोग करते हैं, जैसे watch du -hs backup/*, तो उद्धृत करना न भूलें:

watch "du -hs backup/*"

अन्यथा वाइल्ड-कार्ड्स का विस्तार केवल एक बार किया जाएगा , जब वॉच शुरू होगी तो डु नई फ़ाइलों / उपनिर्देशिकाओं को नहीं देखेगा।


हालांकि, "गति" भाग का जवाब नहीं देता ...
एलोइस महदाल

7

dd status=progress

GNU Coreutils 8.24+ (Ubuntu 16.04) में जोड़ा गया विकल्प:

dd if=src of=dst status=progress

टर्मिनल प्रकार की एक पंक्ति दिखाता है:

462858752 bytes (463 MB, 441 MiB) copied, 38 s, 12,2 MB/s

यह भी देखें: आप dd की प्रगति की निगरानी कैसे करते हैं?


1
आपका मतलब था: stdout पात्रों की एक धारा है और vt100 भागने के क्रम है जो आपके टर्मिनल प्रदर्शन को समय-समय पर अद्यतन लाइन बनाते हैं ।) स्टडआउट हमेशा बाइट्स की एक धारा है और इसका प्रदर्शन करने के तरीके से कोई लेना-देना नहीं है (सिवाय इसके कि एप्लिकेशन यह जान सके कि यह वर्तमान में टर्मिनल से जुड़ा हुआ है या नहीं ...)
मास्टरएक्सिलो

@masterxilo न्यूब्स की परवाह नहीं करेगा, विशेषज्ञों को पता चलेगा ;-)
हेह

वैसे मुझे लगता है कि चीजों को राज्य करना हमेशा अच्छा होता है, जैसे कि वे कुछ विवरणों को छोड़ देते हैं, लेकिन कभी भी अपने पाठकों को एक गलत मानसिक मॉडल नहीं बनाते हैं। यदि आप कहते हैं कि "stdout एक (समय-समय पर अद्यतन की गई) पंक्ति है" तो ऐसा लगता है जैसे आप कह रहे हैं कि stdout एक परिवर्तनशील स्मृति का एक खंड है, जो यह नहीं है। यह भी newbies के लिए जानना महत्वपूर्ण है।
मास्टरएक्सिलो

6

यदि आपके पास rsync 3.1 या उच्चतर ( rsync --version) है, तो आप अनुमतियों और स्वामित्व को संरक्षित करते हुए कॉपी कर सकते हैं (cp -Rpn), निर्देशिकाओं की पुनरावृत्ति करते हैं, "कोई क्लोबर्स नहीं", और समग्र प्रगति (केवल फ़ाइल द्वारा प्रगति के बजाय), प्रतिलिपि दर और ( बहुत कठिन) अनुमानित समय शेष:

sudo rsync -a --info=progress2 --no-i-r /source /destination

ध्यान दें कि sudo को केवल निर्देशिकाओं / फ़ाइलों से निपटने की आवश्यकता होती है, जो आपके पास नहीं हैं। इसके अलावा, --no-i-rप्रतिलिपि के दौरान कुछ बिंदु पर प्रतिशत कम संख्या पर रीसेट हो सकता है। शायद rsync के बाद के संस्करण जानकारी = प्रगति 2 के साथ नो-इर के लिए डिफ़ॉल्ट होंगे, लेकिन यह 3.1.2 के वर्तमान संस्करण में नहीं है।

मैंने पाया है कि प्रतिशत और शेष समय को उस निर्देशिका में कॉपी करते समय अत्यधिक कम कर दिया जाता है जिसमें पहले से ही फाइलें होती हैं (जैसे कि जब आप आमतौर पर cp -n "no clobber" का उपयोग करेंगे)।


3

एक शेल स्क्रिप्ट का उपयोग करें:

#!/bin/sh
cp_p()
{
   strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
      | awk '{
        count += $NF
            if (count % 10 == 0) {
               percent = count / total_size * 100
               printf "%3d%% [", percent
               for (i=0;i<=percent;i++)
                  printf "="
               printf ">"
               for (i=percent;i<100;i++)
                  printf " "
               printf "]\r"
            }
         }
         END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}

ऐसा दिखेगा:

% cp_p /home/echox/foo.dat /home/echox/bar.dat
66% [===============================>                      ]

स्रोत


3

आप जो करना चाहते हैं, उसके आधार पर, मिडनाइट कमांडर ( mc) उत्तर हो सकता है। मुझे आश्चर्य है कि यह अभी तक उल्लेख नहीं किया गया है।

जैसे उपकरण pvया rsyncएक बहुत बड़ा फ़ाइल के हस्तांतरण की प्रगति प्रदर्शित करने के लिए अच्छे हैं, लेकिन जब यह पूरी निर्देशिका / पेड़ों को कॉपी करने के लिए आता है, mcआकार की गणना करता है और फिर बहुत अच्छी तरह से प्रगति दर्शाता है। प्लस यह सिस्टम के अधिकांश बॉक्स पर उपलब्ध है।


2
"यह अधिकांश सिस्टम पर बॉक्स से बाहर उपलब्ध है।" ... किसी भी डिफ़ॉल्ट Ubuntu स्थापना पर नहीं।
मुरू

1

विशेषताओं को संरक्षित करने का एक और विकल्प हो सकता है (यदि sourceएक फ़ोल्डर है तो इसे बनाया जाएगा destination)

tar -c source | pv -e -t -p -r | tar -C destination  -x

आशा है कि यह किसी के लिए उपयोगी हो सकता है। अनुमानित स्थानांतरण समय के लिए यह do -s sourceपहले से कर और इसे एक -s <size>पैरामीटर के रूप में पारित करके प्राप्त किया जा सकता है pv


-f -बेमानी है। tarके लिए cऔर आउटपुट के लिए डिफ़ॉल्ट आउटपुट xस्टडआउट और स्टडिन हैं।
मूरू

यह ओएस / टार संस्करण पर निर्भर हो सकता है? मुझे पता है कि यह एक उबंटू साइट है फिर भी यह मैक ओएस जैसे अन्य ओएस मालिकों के लिए उपयोगी हो सकता है
ciekawy

1
नहीं। सभी साने क्रियान्वयन (जिसमें लिबासिव के टार, जिसे macOS उपयोग करता है) में यह व्यवहार है।
मूरू

बस मैक्रोज़ पर सत्यापित किया गया और आपका सुझाव पूरी तरह से मान्य है - मैंने अपना उत्तर अपडेट कर दिया है। धन्यवाद!
ciekawy

0

आप किसी भी प्रोग्राम का उपयोग कर कॉपी कर सकते हैं। उसी समय, आप sudo iotopप्रगति के बिना अभी तक वास्तव में डिस्क पढ़ने / लिखने की गति को शुरू और देख सकते हैं।


0

नीचे गित भंडार में प्रगति_बार के लिए स्रोत कोड की जाँच करें

https://github.com/Kiran-Bose/supreme

इसके अलावा कस्टम बैश स्क्रिप्ट पैकेज सर्वोच्च की कोशिश करें

डिबेट आधारित वितरण को डाउनलोड करें और डिबेट आधारित वितरण में स्थापित करें या अन्य डिस्ट्रोस के लिए स्रोत फ़ाइलों को डाउनलोड करें, संशोधित करें और उपयोग करें

क्रियात्मकता अवलोकन

(1) ओपन ऐप्स ---- फ़ायरफ़ॉक्स ---- कैलकुलेटर ---- सेटिंग्स

(2) फ़ाइलें प्रबंधित करें ---- खोजें ---- नेविगेट करें ---- त्वरित पहुँच

            |----Select File(s)
            |----Inverse Selection
            |----Make directory
            |----Make file
                                          |----Open
                                          |----Copy
                                          |----Move
                                          |----Delete
                                          |----Rename
                                          |----Send to Device
                                          |----Properties

(3) फ़ोन को प्रबंधित करें ---- फ़ोन से मूव / कॉपी करें ---- फ़ोन पर ले जाएँ / कॉपी करें - सिंक फ़ोल्डर

(4) USB ----- मूव / कॉपी से USB ---- मूव / कॉपी USB पर करें


0

pv जानता है कि फ़ाइल डिस्क्रिप्टर देखने के लिए कैसे एक pid दिया जाता है, चाहे वह cp हो या कुछ और

प्रलेखन से:

   (Linux only): Watching file descriptor 3 opened by another process 1234:

          pv -d 1234:3

   (Linux only): Watching all file descriptors used by process 1234:

          pv -d 1234

उदाहरण:

md5sum file &
[1] + 1271 suspended
pv -d 1271
417MiB 0:00:17 [12,1MiB/s] [============>                                 ] 29% ETA 0:00:53

$ cp file.mov copy.mov &
[2] 3731
$ pv -d 3731
3:/media/windows/file.mov:  754MiB 0:00:04 [97,2MiB/s] [======================>                       ] 52% ETA 0:00:07
4:/media/windows/copy.mov:  754MiB 0:00:04 [97,3MiB/s] [     <=>                                                                   ] 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.