सीपी के साथ फ़ाइलों की प्रतिलिपि बनाते समय स्थानांतरण प्रगति और गति कैसे दिखाएं?

अन्यथा, क्या कोई वैकल्पिक कमांड लाइन उपयोगिता है जो इसे प्राप्त कर सकती है?

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

pv my_big_file > backup/my_big_file

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

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

यह ऐसा दिखता है:

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

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


*: तकनीकी बिट

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

cat source > destination

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

पर एक नज़र रखना man pv इसके बारे में अधिक जानें.


एक और विकल्प, जैसा alt textद्वारा में सुझाव देता है यह जवाब, इसके बजाय आरएसवाईएनसी का उपयोग करना है:

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

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

वहाँ नहीं है । यहाँ क्यों के रूप में । हालांकि यह आपकी जरूरत से ज्यादा करता है, 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)

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

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

हालाँकि, जब टूल का उपयोग करते समय प्रगति पट्टी 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/Mik2Copying 168.57 MiB 100% |########################################################|   7.98 M/s Time: 00:00:22

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

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

curl -o destination FILE://source

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

नामक एक उपकरण है 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)

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

cp -rv old-directory new-directory

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

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

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

जबकि 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

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

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

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

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

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

cv -w

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

डुप्लिकेट प्रश्न: Is it possible to see cp speed and percent copied? - Unix & Linux Stack Exchange

यदि आपने पहले ही सीपी कमांड शुरू कर दिया है, और अब इसे रोकना नहीं चाहते हैं, तो आप गंतव्य के आकार को इस तरह बढ़ा सकते हैं: command line - How to show the transfer progress and speed when copying files with cp? - Ask Ubuntu (‘वॉच’ डु-एचएस"), यह जानने के लिए कि यह वास्तव में बढ़ रहा है और कॉपी काम कर रही है ।