অভিভাবক ডিরেক্টরি থেকে প্রদত্ত গভীরতায় ফাইলগুলি পাওয়ার থেকে উইজেটকে অক্ষম করার কোনও উপায় আছে কি?


11

উইজেটের এমন বিকল্প রয়েছে -npযা কোনও পিতামাতার ডিরেক্টরি থেকে ফাইলগুলি অক্ষম করে। আমার অনুরূপ কিছু দরকার তবে কিছুটা নমনীয়। বিবেচনা:

www.foo.com/bar1/bar2/bar3/index.html

আমি সমস্ত কিছু পেতে চাই (তবে গাছের শ্রেণিবিন্যাসের) চেয়ে bar2( উচ্চতর) নয় (!)। সুতরাং bar2এছাড়াও আনা উচিত কিন্তু না bar1

উইজেটকে আরও নির্বাচনী করার কোনও উপায় আছে কি?

পটভূমি: আমি একটি অনুরূপ যৌক্তিক কাঠামো - প্রারম্ভিক পয়েন্ট, তারপরে এবং তারপরে নীচে একটি ওয়েবসাইট আয়না করার চেষ্টা করছি trying যদি এই wgetজাতীয় বিন্যাসের জন্য আরও উপযুক্ত উপকরণের থেকে অন্য কোনও সরঞ্জাম থাকে তবে দয়া করে আমাকেও জানান।

হালনাগাদ

অথবা সম্ভাব্য গভীরতা নির্দিষ্ট করার পরিবর্তে, "বাবা-মা নেই, যদি না তারা এই বা সেই URL এর সাথে মেলে তবে" এর মতো কিছু।

আপডেট 2

সার্ভারে কিছু কাঠামো আছে, তাই না? আপনি এটি একটি গাছ হিসাবে কল্পনা করতে পারেন। তাই সাধারণত "- না-পিতামাতা" দিয়ে আপনি কিছুটা A থেকে শুরু করেন এবং কেবল নীচে যান।

আমার ইচ্ছাটি, উপরে যাওয়ার দক্ষতা - এই বলে প্রকাশ করে, এটি এক্স নোডের উপরে যাওয়ার অনুমতি দেওয়া হয়েছে, বা (যা 100% সমতুল্য) এটি বি নোডে যাওয়ার অনুমতি রয়েছে (যেখানে দূরত্ব বিএ = এক্স)।

সমস্ত ক্ষেত্রে, ব্যবহারকারীদের দ্বারা সংজ্ঞায়িত হিসাবে নীচে যাওয়ার নিয়মগুলি স্থির থাকে (উদাহরণস্বরূপ - কেবল ওয়াই স্তর দ্বারা নিচে যান)।

কীভাবে এটি সংরক্ষণ করবেন? আসলে এটি আসলে প্রশ্ন নয় - wgetডিফল্টরূপে সার্ভারের কাঠামোটি পুনরায় তৈরি করে, এখানে ভয় পাওয়ার কিছু নেই, বা কোনও কিছু ঠিক করার প্রয়োজন নেই। সুতরাং, 2 কথায় - যথারীতি।

আপডেট 3

নীচে ডিরেক্টরি কাঠামো - আসুন ধরে নেওয়া যাক প্রতিটি ডিরেক্টরিতে কেবল একটি ফাইল রয়েছে - R - R.html এবং তেমন। এটি অবশ্যই সরলীকৃত কারণ আপনার একাধিক পৃষ্ঠা থাকতে পারে।

        R 
       / \
      B   G
     / \
    C   F
   / \
  A   D
 /
E 

এ (এএইচটিএমএল) হল আমার প্রারম্ভিক বিন্দু, এক্স = ২ (সুতরাং বি সর্বাধিক শীর্ষ স্তরের নোড আমি আনতে চাই)। এই নির্দিষ্ট উদাহরণে এর অর্থ আর ডকুমেন্ট এবং জি এইচটিএমএল ব্যতীত সমস্ত পৃষ্ঠা আনতে হবে। এএইচটিএমএলকে "প্রারম্ভিক বিন্দু" বলা হয় কারণ আমাকে এটি থেকে শুরু করতে হবে, বি থেকে নয় not

আপডেট 4

নামকরণ আপডেট 3 থেকে ব্যবহৃত হয়।

উইজেট বিকল্পগুলি www.foo.com/B/C/A/A.html

ডিরেক্টরিটি বি এবং নীচে সমস্ত পৃষ্ঠাগুলি পাওয়ার বিকল্পগুলি কী কী তা এই প্রশ্নটি রয়েছে (আপনি এএইচটিএমএল থেকে শুরু করতে হবে তা জেনে)।


আপনি bar2আনতে চান কিন্তু না bar1? কোথায় bar2থাকব? আপনি যদি চান না যে দুটি বা ততোধিক ডায়ারের অভিন্ন নামযুক্ত সাবডিয়ার রয়েছে, তাদের বিষয়বস্তুগুলি একত্রিত করা উচিত? পুরো অভিশাপের সাইটটি পাওয়া এবং তারপরে আপনার পছন্দমতো জিনিস ছাঁটাই / চালানো প্রায় নিশ্চিতভাবেই সহজ।
কিলিয়ান ফুট

@ কিলিয়ান ফট, "সম্পূর্ণ জঘন্য সাইট পান" বলতে কী বোঝ? এনেছি? সাধারণভাবে এটি ওভারকিল, এটি এমবিগুলির প্রয়োজন হলে টিবিগুলি আনা করার অর্থ হতে পারে। বিশ্রামের জন্য, আপডেট 2 দেখুন।
গ্রীনল্ডম্যান

আপনি কি বোঝাতে চেয়েছেন তা নিশ্চিত না। আমি যে একমাত্র ইন্টারপ্রেস্টেশন নিয়ে আসতে পারি তা হল, আপনি bar2ডিরেক্টরি এবং এর সমস্ত বিষয়বস্তু চান। যদি তা না হয় তবে দয়া করে পরিষ্কার করুন y
ফাহিম মিঠা

@ ফাহিম মিঠা, "এর সামগ্রী" = "সম্পূর্ণ সাবট্রি"। হ্যাঁ, এটি কেবলমাত্র আমি বিশ্বাস করি এমন ব্যাখ্যা।
গ্রীনল্ডম্যান

উত্তর:


12

আমি এটি চেষ্টা করে দেখিনি, তবে -আই এবং এক্স ব্যবহার করে আপনি যা চান তা দিতে পারে। আমার প্রথম চেষ্টা লাইন বরাবর হবে

wget -m -I bar1/bar2 -X "*" http://www.foo.com/bar1/bar2/bar3/index.html

বিকল্পগুলির ব্যাখ্যা:

-m: 
   --mirror
       Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets
       infinite recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l
       inf --no-remove-listing.
-I: list
   --include-directories=list
       Specify a comma-separated list of directories you wish to follow when downloading.  Elements of
       list may contain wildcards.
-X: list
   --exclude-directories=list
       Specify a comma-separated list of directories you wish to exclude from download.  Elements of list
       may contain wildcards.

4

আপনাকে URL এ একটি চূড়ান্ত / যুক্ত করতে হবে, অন্যথায় আপনি যা চান তা পাবেন না।

আপনি যদি সমস্ত কন্টেন্ট www.myhostname.com/somedirectory এ পেতে চান তবে সিনট্যাক্সটি এমনটি পড়তে হবে:

wget -r -nH http://www.myhostname.com/somedirectory/

শেষ না করে চেষ্টা করে দেখুন / এবং দেখুন কী হয়। তারপরে এটি ব্যবহার করে /।


1
এটি এখনও উচ্চতর ডিরেক্টরিতে আরোহণ করবে যদি এতে
লিঙ্কিত

পিছনে স্ল্যাশ সহ ইঙ্গিতটির জন্য অনেক অনেক ধন্যবাদ! এটি আমাকে প্রতিবেশী ডিরেক্টরি (ভাইবোন) থেকে উইজেটের মাধ্যমে অপ্রাসঙ্গিক ফাইলগুলি নিয়ে সমস্যা সমাধান করতে সহায়তা করেছে।
অ্যান্টোনকে

4

আমি মনে করি এখানে সঠিক উত্তরটি --no-parentবিকল্প:

   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.
       This is a useful option, since it guarantees that only the files below
       a certain hierarchy will be downloaded.

এই পতাকাটি ওপি যা চায় তার ঠিক বিপরীত
EkriirkE

1

হয়তো আমি কিছু মিস করছি, তবে যদি আপনি এটি চান তবে যদি তা হয় তবে

wget -c -np -r www.foo.com/bar1/bar2

আমার জন্য কাজ করে (আপনার উদাহরণ ব্যবহার করে)। অবশ্যই, এই বিকল্পগুলির সাথে আপনি www.foo.comনীচের থেকে নীচেও সমস্ত ডিরেক্টরি কাঠামো পাবেন । আপনি যদি কেবল bar2শীর্ষ স্তরে চান , তবে করুন

wget -c -np -r -nH --cut-dirs=1 www.foo.com/bar1/bar2

-nHপরিত্রাণ পেয়ে যায় www.foo.comএবং এ --cut-dirs=1থেকে মুক্তি লাভ করে bar1, সুতরাং আপনি পাবেন bar2এবং এর ডিরেক্টরিগুলি বর্তমান ডিরেক্টরিতে ডাউনলোড হবে ed আরও তথ্যের জন্য দেখুন man wget, যা বেশ পাঠযোগ্য এবং উদাহরণ রয়েছে।


আপনি শুরুর পয়েন্ট বাদ দিয়েছেন, আপনাকে লিঙ্কগুলি অনুসরণ করতে হবে। আপনি ধরে নিয়েছেন যে প্রারম্ভিক পয়েন্ট একই সাথে শীর্ষ-স্তরের (এটি তুচ্ছ ঘটনা np) তবে আমি সাধারণ সমাধানের সন্ধান করছি, যখন শীর্ষ-স্তরটি প্রাথমিক পয়েন্টের উপরে থাকে।
গ্রীনল্ডম্যান

@ ম্যাকিয়াস: দুঃখিত, আমি আপনাকে অনুসরণ করছি না। আপনি একটি উদাহরণ দিয়ে উদাহরণস্বরূপ করতে পারেন?
ফাহিম মিঠা

আমি সবেমাত্র একটি এএসসিআইআই "স্ক্রিনশট" যুক্ত করেছি। আমি আশা করি এটি সাহায্য করবে এই উদাহরণে এ হল পয়েন্ট।
গ্রীনল্ডম্যান

@ ম্যাকিয়াস: সুতরাং আপনি B(আপনার উদাহরণ অনুসারে) এর পথ নির্দিষ্ট করতে চান না , বরং A? যদি তাই হয় তবে কেন? আপনি কিছু স্ক্রিপ্ট স্বয়ংক্রিয় করতে চান বা অন্য কোনও কারণে এটি কি এই কারণ? আপনি এক্স = 2 দ্বারা কী বোঝাতে চাইছেন তাও আমি নিশ্চিত নই। এর মানে কি স্তর 2? আপনি যদি গাছটিতে আরও নীচে ডিরেক্টরি আনার চেষ্টা করছেন তবে আপনি কীভাবে আলাদা Bহন তা নিশ্চিত নই G
ফাহিম মিঠা

এ হ'ল একটি সূচনা পয়েন্ট, কারণ এটি শুরুর পয়েন্ট - দেখুন, আমি ক্লায়েন্টের পাশে আছি, সার্ভার নয়। IOW - আমি না সার্ভার মালিক, এবং আমি এই কাঠামো না। আমি যা দেখতে পাই তা মোকাবেলা করতে হবে। এক্স আপডেট 2 থেকে প্রতীক, "গভীরতা" আপনি কত স্তরে যেতে পারেন। আপনি বি কে জি থেকে আলাদা করুন, কারণ বি বি, এবং জি বি নয়, এবং আপনি বি দেখুন, কারণ এটি এ এর ​​URL এর অংশ, আমি আপডেট 4.
প্রশ্নটি পুনরায় লিখেছি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.