मुझे बैश से फ़ाइल एक्सटेंशन कैसे मिलेगा? यहाँ मैंने क्या कोशिश की है:
filename=`basename $filepath`
fileext=${filename##*.}
ऐसा करने से मुझे bz2पथ से विस्तार मिल सकता है /dir/subdir/file.bz2, लेकिन मुझे पथ से समस्या है /dir/subdir/file-1.0.tar.bz2।
मैं बाहरी कार्यक्रमों के बिना केवल बैश का उपयोग करके एक समाधान पसंद करूंगा यदि यह संभव है।
अपने प्रश्न को स्पष्ट करने के लिए, मैं किसी भी दिए गए संग्रह को निकालने के लिए केवल एक कमांड द्वारा बैश स्क्रिप्ट बना रहा था extract path_to_file। कैसे फ़ाइल निकालने के लिए अपने संपीड़न देखकर या प्रकार संग्रहण करके स्क्रिप्ट से निर्धारित होता है, कि .tar.gz हो सकता है, .gz, .bz2 आदि मुझे लगता है कि इस स्ट्रिंग परिवर्तन को शामिल करना चाहिए, उदाहरण के लिए अगर मैं विस्तार मिलता है .gzमैं तो जाँच करनी चाहिए कि क्या .tarइससे पहले तार है .gz- यदि हां, तो विस्तार होना चाहिए .tar.gz।
.tar.bz2