अन्यथा, क्या कोई वैकल्पिक कमांड लाइन उपयोगिता है जो इसे प्राप्त कर सकती है?
जबकि 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
इसके बारे में अधिक जानें.
एक और विकल्प, जैसा द्वारा में सुझाव देता है यह जवाब, इसके बजाय आरएसवाईएनसी का उपयोग करना है:
$ 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
सभी चल रहे सीपी,एमवी आदि के आंकड़ों को आउटपुट करता है । संचालन
यदि आपने पहले ही सीपी
कमांड शुरू कर दिया है, और अब इसे रोकना नहीं चाहते हैं, तो आप गंतव्य के आकार को इस तरह बढ़ा सकते हैं: command line - How to show the transfer progress and speed when copying files with cp? - Ask Ubuntu (‘वॉच’ डु-एचएस"), यह जानने के लिए कि यह वास्तव में बढ़ रहा है और कॉपी काम कर रही है ।