नाम के रूप में तारीख के साथ टार फाइल?


16

मैं नाम के रूप में दिनांक और समय के साथ एक फ़ाइल को टार और gzip करने का प्रयास कर रहा हूं:

date=$(date '+%d-%m-%Y_%H:%M:%S');    
tar -zcf "$date".tar.gz repo/bin/

लेकिन मैं पीछे हट गया:

tar (child): Cannot connect to 17-08-2017_21: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

वास्तव में यहां क्या हो रहा है और मैं कैसे ठीक कर सकता हूं?

क्या यह नाम से जुड़ने की कोशिश कर रहा है जैसे कि यह एक आईपी है?


7
दिनांकों आईएसओ मानक : mm: ss, या yyyy-MM-DDThh है +%FT%Tमें dateवाक्य रचना की। एक अस्पष्ट प्रारूप में तारीख देने के अलावा, यह अच्छी तरह से!

GNU तारीख के साथ @drewbenn, यह भी: date --iso-8601=s(लेकिन इसमें एक टाइमज़ोन ऑफसेट भी जोड़ा गया है)
muru

2
मैं कॉलन का उपयोग करने से हतोत्साहित होता हूं। कुछ ऐसा ही 20170818_122314या समान रूप से पहचानने और / या पार्स करने के लिए पर्याप्त रूप से आसान है। Colons विभिन्न स्थितियों में परेशानी का कारण बनते हैं (आप सिर्फ एक की खोज की)।
रॉल्फ

जवाबों:


31

हाँ यही है। कम से कम GNU टार के लिए, दस्तावेज़ कहते हैं:

यदि संग्रह फ़ाइल नाम में एक बृहदान्त्र ( :) शामिल है, तो इसे किसी अन्य मशीन पर एक फ़ाइल माना जाता है। यदि संग्रह फ़ाइल है user@host:file, तो फ़ाइल को होस्ट होस्ट पर उपयोग किया जाता है । उपयोगकर्ता के उपयोगकर्ता नाम के साथ rsh प्रोग्राम का उपयोग करके रिमोट होस्ट एक्सेस किया जाता है । यदि उपयोगकर्ता नाम छोड़ा गया है ( @संकेत के साथ ), तो आपके उपयोगकर्ता नाम का उपयोग किया जाएगा। (यह सामान्य कठोर व्यवहार है।)।

यह भी एक काम के आसपास प्रदान करता है:

--force-local
      Archive file is local even if it has a colon.

5
छोटा वर्कअराउंड: tar zcf ./"$date".tar.gz ...प्रमुख पथ विनिर्देश लगता है कि टार इसे एक नियमित फ़ाइल के रूप में मानते हैं
muru
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.