आप ऐसा कर सकते हैं, उन tar
सभी फाइलों की एक सूची के साथ आपूर्ति करने के लिए protTests
जो सिम्बल हैं।
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
वैसे, आपकी मौजूदा कमान:
tar -cvf protTests.tar protTests/*
में सभी फ़ाइलों को संग्रहीत नहीं protTests
किया जाएगा, यह केवल उन लोगों को संग्रहीत करेगा जिनके नाम .
(जो छिपे नहीं हैं) से शुरू नहीं होते हैं। *
ग्लोब ऑपरेटर फ़ाइलें हैं जिनके नाम के साथ शुरू छोड़ देता है तो .
डिजाइन द्वारा। कमांड में यह भी समस्या है कि अगर protTests
बहुत सारी फाइलें (कई हजार से अधिक) हैं, तो protTests/*
कमांड लाइन पर फिट होने के लिए बहुत सारे तर्कों का विस्तार कर सकते हैं।
इस तरह की एक सरल कमांड में न तो कोई समस्या होगी:
tar -cvf protTests.tar protTests
--files-from
, यह gtar का एक विकल्प है, इसलिए आप ऐसी सलाह देते हैं, बेहतर उल्लेख करते हैं कि यह gtar विशिष्ट है। ढूँढें का कोई प्राथमिक नहीं है-not
, यह एक और गैर-पोर्टेबल GNUism है। सामान्य तौर पर, एक अलग खोज कॉल का उपयोग करना एक बुरा विचार है। यह फ़ाइल नाम में मज़ेदार पात्रों के साथ समस्याएँ दे सकता है और यह निश्चित रूप से कम प्रदर्शन देता है क्योंकि फाइल सिस्टम को खोजने के लिए टार की आवश्यकता होती है। ये समस्याएँ स्टार जैसे कार्यक्रमों पर लागू नहीं होती हैं जो कामेच्छा का उपयोग करते हैं और इस प्रकार इसमें पाया गया कोड शामिल होता है।