मुझे बैश से फ़ाइल एक्सटेंशन कैसे मिलेगा? यहाँ मैंने क्या कोशिश की है:
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