tar কমান্ড - symlinks এড়ান


13

আমি টার কমান্ডটি ব্যবহার করি যেমন,

tar -cvf protTests.tar protTests/*

থেকে tarফোল্ডারের ভিতরে সমস্ত ফাইল, protTests। তবে এটি ফোল্ডারের অভ্যন্তরে প্রতীকী লিঙ্কগুলি অন্তর্ভুক্ত করছে যা কোনও পছন্দসই নয়।

একটি কমান্ড লাইন বিকল্প আছে, যে সমস্ত symlinks ছেড়ে যাবে?

উত্তর:


11

সিমলিংকগুলি বাদে 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, এটি কেবল তাদের সংরক্ষণাগারভুক্ত করবে যাদের নাম শুরু হয় না .(যেগুলি গোপন নেই)। *উল্লিখিত glob অপারেটর ফাইল যাদের নাম দিয়ে শুরু অগ্রাহ্য .নকশা দ্বারা। কমান্ডটিতেও সমস্যা রয়েছে যে যদি protTestsপ্রচুর ফাইল থাকে (বহু হাজারেরও বেশি), তবে protTests/*কমান্ড লাইনে ফিট করার জন্য অনেকগুলি আর্গুমেন্টে প্রসারিত করতে পারে।

এর মতো সরল কমান্ডের মধ্যে এই সমস্যাগুলির মধ্যে একটিও নেই:

tar -cvf protTests.tar protTests

1
--files-fromটারের কোনও বিকল্প নেই , এটি গার্টার থেকে একটি বিকল্প, সুতরাং আপনারা এই জাতীয় পরামর্শ দিন, আরও ভালভাবে উল্লেখ করুন যে এটি জিটার নির্দিষ্ট। অনুসন্ধানের কোনও প্রাথমিক নেই -not, এটি অন্য একটি বহনযোগ্য জিএনইউজম। সাধারণভাবে, পৃথক ফাইন্ড কল ব্যবহার করা খারাপ ধারণা। এটি ফাইলের নামটিতে মজার চরিত্রগুলির সাথে সমস্যা দেখা দিতে পারে এবং এটি অবশ্যই একটি কম কর্মক্ষমতা দেয় কারণ ফাইল সিস্টেমটি স্ক্যান করার জন্য অনুসন্ধান এবং ট্যারি উভয়ই প্রয়োজন। এই সমস্যাগুলি স্টারের মতো প্রোগ্রামগুলিতে প্রযোজ্য না যা লাইবফাইন্ড ব্যবহার করে এবং এইভাবে সন্ধানের কোডটি অন্তর্ভুক্ত করে।
সহজেই 1'15

আমাকে আরও একটি সাধারণ ইঙ্গিত যুক্ত করতে দাও: যখন কোনও ইউএনআইএক্স প্রোগ্রামের কোনও বিক্রেতা নির্দিষ্ট নির্দিষ্ট বৈকল্পিকের সাথে সুনির্দিষ্ট পরামর্শ দেওয়ার সময়, তখন বিক্রেতাটির কথা উল্লেখ করা ভাল এবং এটি বিক্রেতার সুনির্দিষ্ট। এটি সাধারণত সফ্টওয়্যারটির অফিশিয়াল নামগুলি ব্যবহার করে করা যেতে পারে, যেমন টারের পরিবর্তে গিটার, ভিআই এর পরিবর্তে ভিআইএম। নোট করুন যে এটি একটি UNIX সম্পর্কিত তথ্য প্ল্যাটফর্ম, সুতরাং সাধারণ উদাহরণগুলিতে POSIX মানের সাথে একত্রিত হওয়া উচিত।
স্কিলি

আপনি ঠিক বলেছেন, @ দক্ষভাবে, এটি একটি জিএনইউ-নির্দিষ্ট সমাধান। আপনার উত্তর ভিত্তিক starএকটি ভাল বিকল্প এবং আমি সেই কারণেই এটিকে উজ্জীবিত করেছি। আমিও "মজার অক্ষর" আপত্তি সাথে একমত কিন্তু যেহেতু গনুহ tarএকটি নেই -0এটি একটি ট্রেড বন্ধ আছে বিকল্প। আমি না কর্মক্ষমতা আপত্তি, সত্যিই এই অবস্থায় কোন ফল যে তার সাথে একমত।
সেলেদা

2
@schily, উভয় গনুহ tarএবং bsdtarআছে --files-fromএবং --nullযা মজার অক্ষর সঙ্গে সমস্যা সরিয়ে ফেলা হবে (যদি সঙ্গে মিলিত findএর -print0বা -exec printf '%s\0' {} +)। তবে এখানে, আপনি সম্ভবত --no-recursionবিকল্পটি যুক্ত করতে চান । কিছু paxবাস্তবায়নেরও একটি -0বিকল্প রয়েছে।
স্টাফেন চেজেলাস

2
@ খুব সহজেই আমি অনুভব করি যে এই মন্তব্য থ্রেডটি বিভিন্ন সংস্করণের জন্য ওকালতির জায়গা নয় tarচ্যাট করতে দয়া করে এটি গ্রহণ করুন । এটি ইতিমধ্যে অনেক দীর্ঘ এবং ধর্মীয় যুদ্ধের মতো পড়া। এই মুহুর্তে ওপি চিমগুলি না লাগলে আমি মনে করি না কোন সংস্করণটি tarব্যবহার হচ্ছে তা বিবেচনা করে। তারা কী ধরণের ইউনিক্স ব্যবহার করছে তা আমরা জানি না।
সেলেদা

-2

আমার টার বাস্তবায়ন সেরা পদ্ধতি is

star -cv -f out.tar -find protTests ! -type l

8
zsh: command not found: starআপনি যখন জানেন এমন ইউটিলিটিগুলি উল্লেখ করেন> আপনার 99% পাঠক আপনার সিস্টেমে থাকবে না, সেগুলি কোথায় পাবেন তা ব্যাখ্যা করুন। আর আপনি আপনার অন্তর্ভুক্তি যখন আপনি আপনার নিজস্ব পণ্য উল্লেখ প্রকাশ উচিত নয় (আপনি লিঙ্ক পোস্ট থাকুক বা না থাকুক, তাই আপনি ভাল হিসাবে লিঙ্ক পোস্ট পারে)।
গিলস 'অশুভ হওয়া বন্ধ করুন'

একটি সাধারণ লিনাক্স সিস্টেম আজকাল ডিফল্ট ইনস্টল করার পরে অনেকগুলি গুরুত্বপূর্ণ সফ্টওয়্যার মিস করে এবং একই সাথে প্রচুর অকেজো সফ্টওয়্যার ইনস্টল করা হয়। একটি লিনাক্স ব্যবহারকারীর জানা থাকা উচিত যে কীভাবে নিখোঁজ সফ্টওয়্যার ইনস্টল করতে হয় এবং যে সমস্ত লোকেরা প্রায়শই টার ব্যবহার করেন তারা যেভাবে স্টার ইনস্টল করেছেন।
স্কিচলি

8
প্রায়শই টার ব্যবহার করে এমন বিশাল সংখ্যক লোক কখনও প্যাকসের কথা শোনেনি, তারাও বাদ দিন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

ওয়েল, যারা জানেন না যে তারা লিনাক্সে জিটিআর ব্যবহার করছেন যখন তারা "টার" ডাকেন তারা সম্ভবত যে কোনওভাবেই যত্নবান ব্যক্তি নয়। তারকা হ'ল প্রাচীনতম নিখরচায় বাস্তবায়ন এবং বিভিন্ন টার বাস্তবায়নে দেখা বিভিন্ন বৈশিষ্ট্য তারা থেকে নেওয়া হয়েছে, তবে কেন আসল কথাটি বলবেন না?
ধীরে ধীরে 22
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.