বড় বড় টারবাল থেকে অন্টার কেবলমাত্র একটি নির্দিষ্ট সংখ্যক ফাইল


12

আমার কাছে একটি বড় টারবাল রয়েছে যা আমাদের স্থানীয় সিস্টেমে একটি রিমোট সিস্টেম থেকে এফটিপি'তে ব্যস্ত।

আমি জানতে চাইছি যে অনর্থককরণ শুরু করা সম্ভব কিনা একবারে ৫০ টি ফাইল বলতে দেয় যাতে এই ফাইলগুলি স্থানান্তর হওয়ার সময় প্রক্রিয়া শুরু করা যায়।

উত্তর:


12

সংরক্ষণাগার থেকে নির্দিষ্ট ফাইলগুলি কীভাবে নিষ্কাশন করা সম্ভব তা সম্পর্কে এখানে বিশদ বিবরণ। বিশেষত জিএনইউ টার একটি টারবাল থেকে একক বা একাধিক ফাইল বের করতে ব্যবহার করা যেতে পারে। নির্দিষ্ট সংরক্ষণাগার সদস্যদের নিষ্কাশন করতে, তাদের সঠিক সদস্যের নাম যুক্তি হিসাবে দিন।

উদাহরণ স্বরূপ:

tar --extract --file={tarball.tar} {file}

আপনি সেই ফাইলগুলিও খুঁজে পেতে পারেন যা একটি নির্দিষ্ট গ্লোববিং প্যাটার্নের সাথে মিলিত হয় (ওয়াইল্ডকার্ডস)। উদাহরণস্বরূপ, cbz.tar থেকে পিক দিয়ে শুরু হওয়া সমস্ত ফাইলগুলি এক্সট্রাক্ট করার জন্য, তাদের ডিরেক্টরি উপসর্গটির কোনও বিষয় নয়, আপনি টাইপ করতে পারেন:

tar -xf cbz.tar --wildcards --no-anchored 'pic*'

সমস্ত পিএইচপি ফাইলগুলি নিষ্কাশন করতে, প্রবেশ করুন:

tar -xf cbz.tar --wildcards --no-anchored '*.php'

কোথায়,

-x: টর্কে ফাইলগুলি উত্তোলনের নির্দেশ দেয়।
-f: ফাইলের নাম / টার্বল নাম নির্দিষ্ট করে।
-v: ভার্বোজ (ফাইলগুলি বের করার সময় অগ্রগতি দেখান)।
-j: bzip2 এর মাধ্যমে ফিল্টার সংরক্ষণাগার, .bz2 ফাইলগুলি সংক্ষেপিত করতে ব্যবহার করুন।
-z: gzip এর মাধ্যমে ফিল্টার সংরক্ষণাগার, .gz ফাইলগুলি সংক্ষেপিত করতে ব্যবহার করুন।
--wildcards: কমান্ড লাইন আর্গুমেন্টকে গ্লোববিং নিদর্শন হিসাবে বিবেচনা করার জন্য টারকে নির্দেশ দেয়।
--no-anchored: এটি অবহিত করে যে নিদর্শনগুলি যে কোনও / ডেলিমেটারের পরে সদস্যের নামের ক্ষেত্রে প্রযোজ্য।


3
আমি নির্দিষ্ট ফাইলগুলি বের করতে চাই না। আমি কেবল প্রথম 50 টি ফাইল বের করতে চাই কারণ ফাইলগুলির নাম কী তা আমি জানি না।
পিটার ভ্যান নিকের্ক

4
আপনি "টার-টিটিএফ" ব্যবহার করে ফাইলের নামের একটি তালিকা পেতে পারেন, "মাথা" ব্যবহার করে প্রথম 50 টি নিয়ে যান, তারপরে সেই তালিকাটিকে অন্য নাম কমান্ডে ফাইলে ফাইলের নামের তালিকা হিসাবে উত্তোলন করতে হবে। এটি পছন্দ করুন: "টার-এক্সএফ ফাইল.টার - নো অ্যাঙ্কার্ডড` টার-টিটিএফ ফাইল.টির | হেড -50` "
সাইমন

এটা খুবই সম্ভব (আমার পরীক্ষার মধ্যে) একটি আংশিকভাবে trandferred 50th ফাইল বের করে আনতে .. এটা একটা ভাল ধারণা (বর্তমান) গত ফাইল আহরণের এড়াতে হবে -tযতক্ষণ না tarball রূপে সম্পূর্ণরূপে ডাউনলোড করা হয় তালিকা। যে কোনও সময় তালিকার তালিকায় কেবলমাত্র ফাইলের নাম দেখা যায় যা হয়েছে বা হয়েছে, স্থানান্তরিত হয়েছে, অর্থাৎ। না পূর্ণ তালিকা; এটি সম্পূর্ণ ডাউনলোড না হওয়া পর্যন্ত until
পিটার.ও

2

এটি নিজে চেষ্টা করে দেখিনি, তবে এটি সম্পর্কে কীভাবে:

tar xvf archive.tar | head -n50

টেক করা প্রতিটি ফাইলের জন্য টার একটি লাইন STDOUT এ আউটপুট করে, তারপরে head50 টি লাইনের পরে কমান্ডটি পাইপটিকে মেরে ফেলবে। পাইপটি মারা যাওয়ার পরে, আমি আশা করছিলাম যে তারটিও মারা যাবে।


দুঃখিত, এটি অবশ্যই একটি হওয়া উচিত head। আমাকে আমার উত্তর পরিবর্তন করতে দিন।
jippie

আমি চেক করিনি, তবে আমি আশঙ্কা করি যে পাইপ বাফারের কারণে, tarএটি সিপাইপিড করার আগে 50 টিরও বেশি ফাইল বের করতে পারে এবং বিশেষত এটি শেষ, অসম্পূর্ণ ফাইলটি বের করতে পারে।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

2
tar -tvf tarfile.tar

আপনাকে ফাইলগুলির পুরো তালিকা দেয় tarfile.tar

tar -xvf tarfile.tar fileToRestore  

এই কমান্ডটি পুনরুদ্ধার করে fileToRestore

একাধিক ফাইল আনার জন্য, তবে সেগুলির সবগুলিই আপনি পারবেন:

  • তুমি কোথা থেকে এই ফাইল তালিকা করা tarfile.tarমধ্যেtar.txt

    tar -tvf tarfile.tar > tar.txt
    
  • এখন tar.txtফাইলগুলির পুরো তালিকা রয়েছে tarfile.tar এবং আপনি কেবল পুনরুদ্ধার করতে চান এমন ফাইল বা মাথার সাহায্যে রেখে যেতে পারেন ...

    head -n50 tar.txt > tar2.txt
    

আপনি এই ফাইলগুলি একটি ফাইলের মধ্যে রাখতে পারেন

cat tar.txt|while read line
do
   tar -xvf tarfile.tar ${line}
done

অথবা সম্পূর্ণ স্ক্রিপ্ট ফাইল:

#!/bin/bash

if [[ "$1" = "" || "$2" = "" ]]
   then
   echo ""
   echo "Uso: untar-list.sh tarfile.tar listfile.txt"
   echo ""
   exit 1
fi

tarfile=$1
file=$2

if [[ ! -f ${tarfile} ]]
   then
   echo ""
   echo "Archivo ${tarfile} no existe"
   echo ""
   exit 1
fi

if [[ ! -f ${file} ]]
   then
   echo ""
   echo "Archivo ${file} no existe"
   echo ""
   exit 1
fi

cat ${file}|while read line
do
  tar -xvf ${tarfile} ${line}
done

echo ""
echo "Finalizado"
echo ""

এবং সব শেষ


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