ফাইল নিষ্কাশন ফাইলের উপর নির্ভর করে?


33

আমি প্রায়শই সোর্সফোর্জন.নেট থেকে উইজেট সহ টারবলগুলি ডাউনলোড করি।

ডাউনলোড করা ফাইলগুলির নাম দেওয়া হয়েছে, যেমন SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch

আমি যখন চেষ্টা করি

tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch

আমি নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি:

tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed

gzip: stdin: unexpected end of file
tar: Child returned status 128
tar: Error is not recoverable: exiting now

foo.tar.gzএক্সট্রাকশনে ফাইলটির নামকরণের পরে নিখুঁত কাজ করে।

একটি উপায় আছে, যে আমি প্রত্যাহার করার আগে প্রতিবার টার্গেট ফাইলটির নাম পরিবর্তন করতে বাধ্য হচ্ছি না?

উত্তর:


50

আপনি যে ত্রুটিটি দেখছেন তার কারণ জিএনইউ টর ডকুমেন্টেশনে পাওয়া যাবে :

যদি সংরক্ষণাগার ফাইলের নামটিতে একটি কোলন (':') অন্তর্ভুক্ত থাকে, তবে এটি অন্য মেশিনে ফাইল হিসাবে ধরে নেওয়া হবে [...]

এটি, এটি SQliteManager-1.2.4.tar.gz?r=httpএকটি হোস্টের নাম হিসাবে ব্যাখ্যা করছে এবং এটি একটি আইপি ঠিকানায় সমাধান করার চেষ্টা করছে, সুতরাং "সমাধান ব্যর্থ হয়েছে" ত্রুটি।

একই ডকুমেন্টেশন বলতে চলেছে:

আপনার যদি এমন কোনও ফাইল ব্যবহার করতে হয় যার নামটিতে একটি অন্তর্ভুক্ত থাকে তবে '--ফোর্স-লোকাল' বিকল্পটি ব্যবহার করে দূরবর্তী টেপ ড্রাইভের আচরণকে বাধা দেওয়া যেতে পারে।


নোটটি --force-localযেটির আগে যুক্ত করতে হবে f... আমি যখন প্রথম চেষ্টা করেছিলাম তখন এটি আমাকে কোনও ত্রুটি বার্তা দিচ্ছিল যে এরকম কোনও ফাইল নেই কেন --force-local। হতে পারে এটি খুব "না দুহ" তবে 5 মিনিট পরে আমি যে ভুলটি করেছিলাম তা আমি চিনতে পারি নি।
আর্টঅফ ওয়ারফেয়ার

@ আর্টঅফওয়ারফেয়ার: fএকটি যুক্তি নেয় যা টারফাইল। আপনি এবং এর যুক্তিটির --force-localমধ্যে রাখতে পারবেন না f, তবে এটি সমস্ত প্রোগ্রামের জন্য আদর্শ, কেবল tarএবং কেবল নয় -f। আপনি লাগাতে পারেন --force-localপর fদীর্ঘ হিসাবে হিসাবে এটি যুক্তি পর হয় f
ক্যামহ

যেমন আমি আমার মন্তব্যে বলেছি, সম্ভবত এটি খুব "কোনও দ্বি" নয়। আমি এই জাতীয় টার ব্যবহার tar -cvzf ...করি এবং প্রতিটি পতাকা সত্যিকারের 99% সময় কী করে সে সম্পর্কেও ভাবেন না - এটি কেবল প্রতিবিম্বিত যে আমি এভাবেই একটি টার্গেট তৈরি করি .g
আর্টঅফ ওয়ারফেয়ার

এই নোটটিতে, এই দু'জন (@ আর্টঅফ ওয়ার্ফার এবং @ ক্যামহ) এখানে যা বলছেন তা আরও সহায়তার জন্য একটি উদাহরণ:tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
ডাঃ ড্যান

6

আপনি যখন ডাউনলোড করেন wget, তখন -Oবিকল্পটির সাথে আউটপুট ফাইলের নাম উল্লেখ করুন ।

wget "http://domain.com/file.tgz?crazy=args&stuff=todelete" -O file.tgz

এটি প্রদত্ত ফাইলের নামটি দিয়ে ফাইলটি সংরক্ষণ করবে এবং আপনার সমস্যা বা নাম পরিবর্তন করে বাঁচাতে পারে। এবং না, আপনিই একমাত্র নন যে সোর্সফোর্জে কামনা করা এতটা মূ .় হবে না যে সংযুক্ত ইউআরএল প্যারামিটার যুক্ত ফাইলগুলি পাস করার জন্য।


এটি সোর্সফর্জের দোষ নয়, তবে wget--content-dispositionসার্ভার-নির্দিষ্ট ফাইলের নামটি সংরক্ষণ করার জন্য পতাকাটি ব্যবহার করুন (তবে সুরক্ষা প্রভাবগুলি থেকে সাবধান থাকুন, সোর্সফোর্স একটি স্বেচ্ছাসেবী ফাইল নাম লিখতে পারেন)।
পিসি ওয়ার্ল্ড

4

ব্যবহার করে ডাউনলোড করুন

wget --trust-server-names URL

এইভাবে উইজেট সঠিক ফাইলের নাম সহ সংরক্ষণ করবে। ডিফল্টরূপে এটি URL এ শেষ উপাদানটি ব্যবহার করে

যেমন যেমন

wget --trust-server-names http://sourceforge.net/projects/sqlitemanager/files/sqlitemanager/1.2.4/SQliteManager-1.2.4.tar.gz/download

4

উপরে উদ্ধৃত হিসাবে, :(কলাম) tarমনে করুন এটি একটি দূরবর্তী ফাইল। সুতরাং আমাদের এটিকে স্থানীয় করার বাস্তবায়ন করতে হবে।

ব্যর্থ

$ tar czf "back$(date -u +"%H:%M").tar.gz" ./
tar (child): Cannot connect to back10: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

সমাধান

./(বর্তমান ডিরেক্টরি) যুক্ত করে এবং সঠিকভাবে উদ্ধৃতি দিয়ে এটি একটি স্থানীয় ফাইলকে স্পষ্ট করে বলুন :

$ tar czf ./"back$(date -u +'%H:%M').tar.gz" ./
tar: .: file changed as we read it

সতর্কতাটি আমি উত্স ডিরেক্টরিতে তৈরি করার কারণে হয়েছে।


দীর্ঘ পতাকা ব্যবহারের চেয়ে অনেক বেশি ভাল। এছাড়াও আমি বিশ্বাস করি যে এই উদ্দেশ্য অর্জনের জন্য নির্দিষ্ট সরঞ্জামগুলি থাকা অবস্থায় দূরবর্তী হোস্ট ডাউনলোড করা অকেজো বিকল্প।
আলিরেজা মোহাদামি

3

ইতিমধ্যে ডাউনলোড করা ফাইলগুলির জন্য, এটি কাজ করা উচিত:

tar xzf - < SQliteManager-1.2.4.tar.gz*
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.