cp foo.txt {,.backup.`date`}
यह कुछ इस तरह फैलता है cp foo.txt .backup.Thu Oct 17 01:02:03 GMT 2013
। ब्रेसिज़ से पहले की जगह एक नया शब्द शुरू होता है।
cp foo.txt {,.backup. $((date)) }
ब्रेसिज़ अलग-अलग शब्दों में हैं, इसलिए उनकी शाब्दिक व्याख्या की जाती है। इसके अलावा, $((…))
अंकगणितीय विस्तार के लिए वाक्य रचना है; का उत्पादन date
अंकगणितीय अभिव्यक्ति की तरह नहीं है। कमांड प्रतिस्थापन कोष्ठक के एक सेट का उपयोग करता है $(date)
:।
cp foo.txt foo.backup.`date`
करीब। आप इसे ब्रेसिज़ के साथ व्यक्त कर सकते थे cp foo.{txt,.backup.`date`}
। अभी भी समस्या है कि आउटपुट date
में रिक्त स्थान हैं, इसलिए इसे दोहरे उद्धरण चिह्नों के अंदर रखना होगा। यह काम करेगा:
cp foo.{txt,backup."`date`"}
या
cp foo.{txt,backup."$(date)"}
डिफ़ॉल्ट आउटपुट स्वरूप date
एक फ़ाइल नाम के लिए अच्छी तरह से अनुकूल नहीं है, और यह भी काम नहीं कर सकता है यदि कोई /
डिफ़ॉल्ट डिफ़ॉल्ट आउटपुट स्वरूप में वर्णों का उपयोग करता है । YMD दिनांक स्वरूप का उपयोग करें ताकि फ़ाइल नामों पर लेक्सोग्राफ़िक क्रम कालानुक्रमिक क्रम हो (और साथ ही अमेरिका और अंतर्राष्ट्रीय दिनांक स्वरूपों के बीच अस्पष्टता से बचने के लिए)।
cp foo.{txt,backup."$(date +%Y%m%d-%H%M%S)"}