লিনাক্স tar: শুধুমাত্র - নির্দিষ্ট ফাইল ট্রান্সফরম


1

আমি একটি bash স্ক্রিপ্ট লিখছি যা একটি TAR ফাইলে আমার অ্যাপ্লিকেশন প্যাকেজ। ফাইলগুলিকে ডিস্কে সংগঠিত করা হয়নি কিভাবে তারা TAR ফাইলে ব্যবস্থা করতে হবে, তাই আমি --transform বিকল্পটি ব্যবহার করার সিদ্ধান্ত নিয়েছি।

তবে, মনে হচ্ছে যে --transform কমান্ডটি পরে অন্তর্ভুক্ত করা ফাইলগুলিতে প্রয়োগ করার পরিবর্তে বিশ্বব্যাপী প্রয়োগ করা হয়।

উদাহরণ:

tar \
--exclude='webmanager/bin/dev' \
--exclude='webmanager/.config.ini' \
--show-transformed-names \
--create --gzip --verbose \
--file 'output.tgz' \
-C '../../../' \
'include' \
'resources' \
'webmanager' \
'rootconfig.php' \
-C 'webmanager/bin/dev' \
'index.php' \
'README.md' \
--transform='s|^|webmanager/|r' \
'.config.ini'

মূলত, এই কোড থেকে একটি ফাইল লাগে webmanager/bin/dev/.config.ini এবং এটি স্থাপন করে webmanager/.config.ini TAR ফাইলে। কিন্তু আমি শুধুমাত্র .config.ini ফাইলটি রূপান্তরিত করতে চাই। বর্তমানে সব বিষয়বস্তু রূপান্তরিত হচ্ছে এবং prefixed হচ্ছে webmanager/। আমি এই কমান্ড মত আচরণ আশা ছিল -C (বর্তমান ডিরেক্টরি পরিবর্তন করুন) - এটি শুধুমাত্র এটির পরে ইনপুটগুলিকে প্রভাবিত করে।

আমি TAR ম্যান পৃষ্ঠাগুলি দেখেছি এবং আমি সঠিকভাবে এটি কীভাবে করতে পারি তা আমি বুঝতে পারছি না। সাহায্য করুন!


একটি প্যাচ লিখতে মুক্ত মনে।
Ipor Sircer

উত্তর:


1

এটা মনে হয় --transform বিকল্প প্রকৃতপক্ষে সব ফাইল কাজ করে। যাইহোক, আমি এই খুঁজে পেয়েছি পৃষ্ঠা সম্পর্কিত tar যে কোনোভাবে আপনাকে সাহায্য করতে পারে।

যদি আমি পারি, আমি আপনাকে একটি ভিন্ন পদ্ধতির পরামর্শ দিই: ফাইলগুলিকে একটি অস্থায়ী ডিরেক্টরিতে আপনার প্রয়োজন অনুসারে রাখুন ( cp কমান্ড করবে), আপনার .config.in সাথে সংশোধন করুন sed এবং ব্যবহার করার চেয়ে tar সবকিছু প্যাক করার জন্য। আপনি যদি পরিচিত হন তবে এমনকি একটি Makefile এর একটি স্ক্রিপ্ট তৈরি করতে পারেন make


2
আমি hardlinks তৈরীর সুপারিশ ( cp -l ) পরিবর্তে সময় এবং ডিস্ক স্থান সংরক্ষণ কপি।
Kamil Maciorowski

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