কেন `tar -xvfz` ব্যর্থ হয়, তবে` tar xvfz` কাজ করে?


41

tar -xvfz foo.tar.gz একটি ত্রুটি প্রদান করে tar: z: Cannot open: No such file or directory

এটি সম্পূর্ণরূপে বোধগম্য - fস্যুইচটি কোনও ফাইলের নাম আশা করে, এবং তাই শেষ হওয়া দরকার।

যাইহোক, হাইফেনকে বাদ দিয়ে tar xvfz foot.tar.gzফাইলটি সঙ্কলিত করে এবং আনট্রেস করে।

আমি এটি OS X 10.8 এবং উবুন্টু 12.04 এ পরীক্ষা করেছি।

কোন ধারণা কেন?

[যুক্ত করতে সম্পাদিত]

আমি সবসময় ব্যবহার করি tar -zxvf foo.tar.gz। যাইহোক, এই প্রশ্নটি এই এক্সকেডির কারণে উত্থাপিত হয়েছিল , এবং যখন কেউ জোর করেছিল যে tar xvfzএটি কাজ করবে।

এখানে চিত্র বর্ণনা লিখুন


12
তাই দুঃখিত: xkcd.com/1168
মাইকেলহাউস

উত্তর:


61

আলকাতরা (অনুযায়ী বাক্য গঠন 3 ধরনের এই ):

  • দীর্ঘ বিকল্প (- ফাইল)
  • সংক্ষিপ্ত বিকল্পগুলি (-f)
  • পুরানো বিকল্প (চ)

পুরানো বিকল্প সিনট্যাক্সের জন্য, সমস্ত অক্ষর অবশ্যই "তার" অনুসরণ করবে এবং সবগুলি অবশ্যই কোনও ফাঁকা স্থান ছাড়াই একক ঝাঁকুনিতে পড়বে। অক্ষরের ক্রমটি সত্যই গুরুত্বপূর্ণ নয়, যতক্ষণ না সেই চিঠিগুলির যুক্তিগুলি বিকল্প ক্রমের পরে একই আদেশ অনুসরণ করে।

টার বিকল্পগুলি লেখার এই পুরানো পদ্ধতি এমনকি অভিজ্ঞ ব্যবহারকারীদেরও অবাক করে দিতে পারে। উদাহরণস্বরূপ, দুটি কমান্ড:

 # tar cfz archive.tar.gz file
 # tar -cfz archive.tar.gz file

বেশ আলাদা। প্রথম উদাহরণটি 'আর্কাইভ.আর্টরজেড' ব্যবহার করে 'চ' বিকল্পের মান হিসাবে ব্যবহার করে এবং 'z' বিকল্পটি স্বীকৃতি দেয়। তবে দ্বিতীয় উদাহরণটি 'z' বিকল্পটি 'এফ' বিকল্পের মান হিসাবে ব্যবহার করে - সম্ভবত এটির উদ্দেশ্য ছিল না।

পুরানো বিকল্পগুলি টারের পুরানো সংস্করণগুলির সাথে সামঞ্জস্য করার জন্য রাখা হয়।

'-' সহ কমান্ডটি সমান

tar -czf archive.tar.gz file
tar -cf archive.tar.gz -z file
tar cf archive.tar.gz -z file

এ কারণেই আপনার উদাহরণটি "-" ছাড়াই কাজ করছে এবং "-" দিয়ে নয়


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.