লুকানো ফাইল ব্যতীত কোনও ডিরেক্টরিটির টার সংরক্ষণাগার তৈরি করবেন?


17

আমি একটি নির্দিষ্ট ডিরেক্টরিটির টার আর্কাইভ তৈরি করতে চাই (অবশ্যই এর উপ-ডিরেক্টরিগুলি সহ)। তবে আমি যখন এটি করি, টার কমান্ডটি ব্যবহার করে, আমি অন্তর্ভুক্ত থাকা ফাইলগুলির একটি তালিকা পাই, উদাহরণস্বরূপ:

একটি ক্যালেন্ডার_ফাইনাল /._ স্টাইল। CSS

একটি ক্যালেন্ডার_ফাইনাল / স্টাইল। CSS

আপনি দেখতে পাচ্ছেন, একই ফাইলের দুটি সংস্করণ রয়েছে। এটি প্রতিটি ফাইলের জন্য যায় এবং অনেকগুলি রয়েছে। আমি কীভাবে টার্ম সংরক্ষণাগার থেকে ._ উপসর্গ সহ অস্থায়ী ফাইলগুলি বাদ দেব?


এটি সহায়তা করতে পারে: unix.stackexchange.com/questions/2213/…
tshepang

এগুলি অস্থায়ী ফাইল নয়, তবে ওএস এক্স ফাইল সিস্টেম মেটাডেটা উপস্থাপন করে (যদি আমার ভুল না হয় তবে সেগুলির মধ্যে ফাইন্ডার লেবেল, প্রকার এবং স্রষ্টার কোড, প্রসারিত বৈশিষ্ট্য ইত্যাদি অন্তর্ভুক্ত থাকে)। ওএস এক্স-এ ট্যার তৈরি করার আগে এই ফাইলগুলির অস্তিত্ব নেই P সম্ভাব্য উত্তরগুলি আপনি ওএস এক্স / এইচএফএস + বা অন্য কোনও সিস্টেমে আছেন কিনা তার উপর নির্ভর করে।
ড্যানিয়েল বেক

উত্তর:


33

আপনি একটি মন্তব্যে পোস্ট করেছেন যে আপনি একটি ম্যাক ওএস এক্স সিস্টেমে কাজ করছেন। এই ._*ফাইলগুলির উদ্দেশ্যটির জন্য এটি একটি গুরুত্বপূর্ণ সূত্র ।

এই ._*সংরক্ষণাগার এন্ট্রিগুলি আপেলডুবল ডেটার অংশগুলি যা সম্পর্কিত ফাইলের সাথে যুক্ত অতিরিক্ত তথ্য ( ._উপসর্গ ব্যতীত) ধারণ করে । এগুলি ম্যাক ওএস এক্স – নির্দিষ্ট কপিফাইলে (3) ফাংশনের পরিবার দ্বারা উত্পাদিত হয় । অ্যাপলডুবাল ব্লগগুলি অ্যাক্সেস কন্ট্রোল ডেটা (এসিএল) এবং বর্ধিত বৈশিষ্ট্যগুলি (সাধারণত, ফাইন্ডার ফ্ল্যাগ এবং "রিসোর্স ফর্কস" সংরক্ষণ করে, তবে xattrs কোনও ধরণের ডেটা সঞ্চয় করতে ব্যবহার করা যেতে পারে)।

সিস্টেম সরবরাহিত ম্যাক ওএস এক্স আর্কাইভ সরঞ্জামগুলি ( bsdtarএটিও সিমলিংকৃত tar) gnutar, এবং pax) ._*কোনও ফাইলের জন্য সংরক্ষণাগার সদস্য তৈরি করবে যার সাথে সম্পর্কিত কোনও প্রসারিত তথ্য রয়েছে; "সংরক্ষণাগারহীন" মোডে, তারা সেই সংরক্ষণাগার সদস্যদের ডিকোড করবে এবং ফলাফলের প্রসারিত তথ্য সম্পর্কিত ফাইলটিতে প্রয়োগ করবে। এটি ম্যাক ওএস এক্স সিস্টেমে সংরক্ষণের জন্য এবং পরে এইচএফএস + ফাইল সিস্টেম সংরক্ষণ করতে পারে এমন সমস্ত তথ্য বের করে একটি "সম্পূর্ণ বিশ্বস্ততা" সংরক্ষণাগার তৈরি করে।

অন্যান্য সিস্টেমে সম্পর্কিত সংরক্ষণাগার সরঞ্জামগুলি এই ._*ফাইলগুলিতে বিশেষ হ্যান্ডলিং দিতে জানে না , তাই এগুলি সাধারণ ফাইল হিসাবে প্যাক করা হয়। যেহেতু এই জাতীয় ফাইলগুলি অন্যান্য সিস্টেমে মোটামুটি অকেজো হয় তাই এগুলি প্রায়শই "জাঙ্ক ফাইল" হিসাবে দেখা যায়। স্বতঃস্ফূর্তভাবে, যদি কোনও ম্যাক ওএস এক্স এক্স সিস্টেম আর্কাইভ উত্পন্ন করে যা এর সাথে শুরু হওয়া সাধারণ ফাইলগুলি অন্তর্ভুক্ত করে ._, ম্যাক ওএস এক্স আনর্কাইভিং সরঞ্জামগুলি সেই ফাইলগুলিকে বর্ধিত তথ্য হিসাবে ডিকোড করার চেষ্টা করবে।

সিস্টেম-সরবরাহকৃত ম্যাক ওএস এক্স আর্কাইভগুলি অন্যান্য ইউনিক্সি সিস্টেমে যেমন আচরণ করে তেমনি একটি অপ্রকাশিত (?) উপায় রয়েছে: COPYFILE_DISABLE পরিবেশ পরিবর্তনশীল। এই ভেরিয়েবলটি সেট করা (যে কোনও মান এমনকি খালি স্ট্রিংয়েও) ._*সংরক্ষণাগারগুলি আর্কাইভ সদস্য তৈরি করা থেকে সংরক্ষণাগারভুক্ত ফাইলগুলির সাথে সম্পর্কিত যে কোনও প্রসারিত তথ্য উপস্থাপন করতে বাধা দেবে। এর উপস্থিতি সংরক্ষণাগারগুলিকে এই জাতীয় সংরক্ষণাগার সদস্যদের বর্ধিত তথ্য হিসাবে ব্যাখ্যা করার চেষ্টা থেকে বাধা দেবে।

COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …

আপনি যদি এইভাবে বেশি বার না করে কাজ করতে চান তবে আপনি শেলটির প্রারম্ভিককরণের ফাইলে এই পরিবর্তনশীলটি সেট করতে পারেন।

# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE

তারপরে, যখন আপনাকে বৈশিষ্ট্যটি পুনরায় সক্ষম করতে হবে (বর্ধিত তথ্য সংরক্ষণ / পুনরুদ্ধার করতে), আপনি স্বতন্ত্র কমান্ডগুলির জন্য চলকটিকে "আনসেট" করতে পারেন:

(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)

ম্যাক ওএস এক্স 10.4 এর সংরক্ষণাগারগুলিও একই রকম কিছু করে, যদিও তারা একটি ভিন্ন পরিবেশের পরিবর্তনশীল ব্যবহার করে: COPY_EXTENDED_ATTRIBUTES_DISABLE


কেউ কি এই কাজ করে না দেখেছেন? আমি এই সমাধানটি ইউসেমাইটে চেষ্টা করেছি এবং যখন আমি একটি এআইএক্স বক্সে আনজিপ করি তখনও প্যাক্সহিডার ডিরেক্টরিগুলি তৈরি করা হয়
কনজারগ্রিফিন

5

এই কাজ করা উচিত:

tar zcf calendar.tgz "a calendar_final" --exclude '.*'

আমি ভেবেছিলাম এটি কার্যকর হয়েছে তবে আসলে আমি যখন সংরক্ষণাগারটি প্যাক করে ফেললাম, তখন আমি দেখতে পেলাম যে সেগুলি অন্তর্ভুক্ত করা হয়েছে: /

অদ্ভুত, আপনি কি টার এর সংস্করণ ব্যবহার করেন? tar --versionএখানে GNU 1.23 দেয়।
ফ্রেডেরিক ডিয়ার্ড্ট

1
এই ফাইলগুলি ওএস এক্স-তে ফাইল সিস্টেম মেটাডেটা এবং ট্যার চালানোর আগে উপস্থিত নেই, তাই সম্ভবত এইভাবে বাদ দেওয়া যায় না। অন্য ম্যাকতে সংরক্ষণাগারটি আনপ্যাক করার সময় ওএস এক্স ফাইল মেটাডেটা পুনরুদ্ধার করার অনুমতি দেওয়ার জন্য এগুলি অন্তর্ভুক্ত রয়েছে।
ড্যানিয়েল বেক

আমার জন্য কাজ কর. tar vzcf ...কোনও ভুল ফাইল অন্তর্ভুক্ত ছিল কিনা তা দেখার জন্য আমি ব্যবহারের পরামর্শ দিই ।
stribika

@ স্ট্রিপিকা তিনি সম্ভবত ওএস এক্স-এ রয়েছেন the প্রশ্নের সম্পর্কে আমার মন্তব্য দেখুন। ফাইলগুলি আর্কাইভের বাইরে থাকা না হওয়ায় ফাইলগুলি বাদ দেওয়া যায় না।
ড্যানিয়েল বেক

2

ফ্রেডেরিক ডিয়ার্ড্ট একটি সমাধান দিয়েছেন যা জিএনইউ টারে (লিনাক্স, সাইগউইন, ফ্রিবিএসডি, ওএসএক্স, সম্ভবত অন্যদের ক্ষেত্রে ব্যবহৃত), তবে নেটবিএসডি, ওপেনবিএসডি বা সোলারিসের মতো অন্যান্য সিস্টেমে নয়।

পসিক্স tarকমান্ডটি নির্দিষ্ট করে না (কারণ এটি ইউনিক্সের বৈকল্পিকের মধ্যে খুব বুনোভাবে পরিবর্তিত হয়) এবং paxপরিবর্তে আদেশটি প্রবর্তন করে । বিকল্পটির -wঅর্থ একটি সংরক্ষণাগার ( -rএক্সট্রাক্ট) উত্পাদন করা এবং -xসংরক্ষণাগার বিন্যাসটি নির্বাচন করা। বিকল্পটি -s '!BRE!!'সমস্ত ফাইলকে বাদ দেয় যার পথটি বেসিক নিয়মিত এক্সপ্রেশন BRE এর সাথে মেলে।

pax -w -x ustar -s '!^.*/\..*$!!' calendar_final >calendar_final.tar

আকর্ষণীয় ... আমি প্যাক্স সম্পর্কে জানতাম না।
গ্যাবে

2

bsdtar 3.0.3 - libarchive 3.0.3(এবং সম্ভবত পূর্ববর্তী) হিসাবে একটি নতুন (ম্যাক ওএস এক্স সুনির্দিষ্ট) বিকল্প রয়েছে যাতে bsdtarকমান্ডটি ফাইল --disable-copyfileতৈরি বন্ধ করতে ডেকে আনা হয় ._। পুরোনো সংস্করণগুলি tarহবে না --disable-copyfileবিকল্প কিন্তু এনভায়রনমেন্ট ভেরিয়েবল সেট COPYFILE_DISABLE=1কাজ করা উচিত।


সঙ্গে bsdtar 2.8.3 - libarchive 2.8.3এর নথিভুক্ত করা হয় না কিন্তু পাওয়া সত্ত্বেও। 10.7.5--disable-copyfile
স্টেফান শ্মিড্ট

0

এই পদক্ষেপগুলি অনুসরণ করুন:

  1. সমস্ত ._ফাইল সন্ধান করুন এবং সেগুলি ব্যবহার করে তালিকাভুক্ত করুন -lsযাতে আপনি সমস্ত ._ফাইল দেখতে এবং শেষ পর্যন্ত সেগুলি মুছতে পারেন।

    find /path/to/directory -type f -iname "._*.*" -ls -delete
    
  2. ব্যবহার করে সংরক্ষণাগার তৈরি করুন।

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