ডিডি স্কিপ পাস | হেক্সাডেসিমাল হিসাবে অফসেট সন্ধান করুন


11
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=3 2> /dev/null
d
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=0x3 2> /dev/null
f

দ্বিতীয় কমান্ড কেন একটি পৃথক মান আউটপুট করে?

ddহেক্সাডেসিমাল মান হিসাবে অফসেট সন্ধান কি এড়িয়ে যাওয়া যায় ?

উত্তর:


18

দ্বিতীয় কমান্ড কেন একটি পৃথক মান আউটপুট করে?

Reasonsতিহাসিক কারণে, একটি গুণক অপারেটর হিসাবে ddবিবেচনা xকরে। সুতরাং 0x30 হতে মূল্যায়ন করা হয়।

এসিপি ছাড়াই কি সম্ভব? ডিএসডি থেকে হেক্সাডেসিমাল মান হিসাবে অফসেট সন্ধান করুন?

সরাসরি না, যতদূর আমি জানি। অপারেটরটি ব্যবহার করে গুণনের পাশাপাশি xআপনি যে কোনও সংখ্যার সাথে b"512 দ্বারা গুণা" (0x200) এবং K"1024 দ্বারা গুণা" (0x400) বোঝাতে যে কোনও সংখ্যার প্রত্যয় করতে পারবেন । গনুহ আপনার কাছে প্রত্যয় ব্যবহার করতে পারেন dd সঙ্গে M, G, T, P, E, Zএবং Yসংখ্যাবৃদ্ধি 2 দ্বারা 20 ক্ষমতা, 30, 40, 50, 60, 70, 80 বা 90 যথাক্রমে চাওয়ার কথা বলছেন, এবং আপনি উপরের ব্যবহার করুন অথবা ব্যতীত ক্ষেত্রে কমে যাবে bপ্রত্যয় জন্য (অনেক অন্যান্য সম্ভাব্য প্রত্যয় উদাহরণস্বরূপ, আছে। EBমানে হলো "সংখ্যাবৃদ্ধি 10 দ্বারা 18 " এবং PiBমানে হলো "সংখ্যাবৃদ্ধি 2 দ্বারা 50 "। দেখুন info coreutils "block size"আরও তথ্যের জন্য, আপনি একটি গনুহ ইনস্টলেশন আছে যদি।)

আপনি উপরোক্ত আরকেন, অ্যানাক্রোনিস্টিক এবং অদ্ভুততার বিষয়টিকে উপভোগ করতে পারেন। চিন্তা করার দরকার নেই: আপনি একা নন। ভাগ্যক্রমে, আপনি কেবল এগুলি সব উপেক্ষা করতে পারেন এবং তার পরিবর্তে আপনার শেলের গাণিতিক বিকল্পটি ব্যবহার করতে পারেন (ব্যাশ এবং অন্যান্য পিক্সিক্স অনুগত শেলগুলি কাজ করবে, পাশাপাশি কিছু নন-পিক্সিক শেল)। শেলটি হেক্সাডেসিমাল সংখ্যাগুলি বোঝে এবং এটি সাধারণ উপায়ে লিখিত গাণিতিক অপারেটরগুলির একটি সম্পূর্ণ পরিসরকে অনুমতি দেয়। আপনার কেবল এইটির সাথে অভিব্যক্তিটি ঘিরে রাখা দরকার $((...)):

# dd if=2013-Aug-uptime.csv bs=1 count=$((0x2B * 1024)) skip=$((0x37))

নোট করুন যে $((...))পসিক্স গাণিতিক সম্প্রসারণ, এটি মোটেও নির্দিষ্ট নয়, এটি ব্যবহার bashকরতে আপনাকে ব্যবহার করতে হবে না, কোনও পসিক্স শেল করবে। তবে নোট করুন যে সহ অনেকগুলি শেলের মধ্যে bashএটি শব্দ বিভাজনের মধ্য দিয়ে যায় তাই উদ্ধৃত করা উচিত।
স্টাফেন চেজেলাস

@ স্টাফেনচাজেলাস: এটি সত্য, এটি নির্দিষ্টভাবে নির্দিষ্ট নয়। যাইহোক, এটির উদ্ধৃতি দরকার নেই। (পিক্সিক্স: "এক্সপ্রেশনটি এমনভাবে ধরা হবে যেন এটি ডাবল-কোটে থাকে, ব্যতীত অভিব্যক্তির ভিতরে একটি ডাবল-কোট বিশেষভাবে বিবেচনা করা হয় না।") যদি ভাবের মধ্যে কোনও পরিবর্তনশীল থাকে এবং এর মান একটি বিভাজক অন্তর্ভুক্ত করে, তাহলে এটি কোনও বৈধ সংখ্যা হবে না; চারপাশে উদ্ধৃতি স্থাপন $((...))কিছুই পরিবর্তন করবে না। আপনার কাছে এমন কিছু থাকলে কোটেশনগুলি যেখানে কিছু করতে পারে তা কেবলমাত্র আমি ভাবতে পারি IFS=4তবে এটি অন্যান্য ধরণের বিশৃঙ্খলা সৃষ্টি করে।
ধনী

বিভাগটি আপনাকে উদ্ধৃত ভিতরে কি হয় $((...))পসিক্স স্পষ্ট যে এর বিস্তৃতি $((...))শব্দ বিভাজন সাপেক্ষে । তালিকার প্রসঙ্গে কোন কমান্ড / পাটিগণিত / ভেরিয়েবল বিস্তৃত বিবরণ ছেড়ে দেওয়া হ'ল বিভাজন + গ্লোব অপারেটর। আইএফএস = 4 সেট করার ফলে আপনি যদি স্প্লিট + গ্লোব অপারেটর যেখানে এটির প্রয়োজন / চান না তা ব্যবহার না করেন এবং প্রতিবার যখন এই স্প্লিট + গ্লোব অপারেটরের প্রয়োজন হয় তখন আইএফএস সেট করুন।
স্টাফেন চেজেলাস

@ স্টাফেনচাজেলাস: হ্যাঁ, সংখ্যার ফলাফলটি শব্দ বিভাজনের সাথে সম্পর্কিত। তবে এটি একটি পূর্ণসংখ্যা আপনি যদি IFSএমন কিছু সেট করে থাকেন যার মধ্যে অঙ্কগুলি অন্তর্ভুক্ত থাকে, এমন কোনও কিছু যা আমি বিশ্বাস করি না যে আমি কখনই করেছি তবে আপনাকে উদ্ধৃত করা দরকার। সম্ভবতঃ যদি কেউ এটি করে থাকে তবে একজন তার প্রয়োজন সম্পর্কে সচেতন হবেন, যেহেতু এটি খুব সহজেই এমন কিছু যা সম্ভবত ঘটনাক্রমে করা সম্ভব হয়। বা, অন্ততপক্ষে, এটি খুব সম্ভবত কিছু সময়, সম্ভবত আমি করব। আমি আপনার পক্ষে কথা বলতে চাইছি না।
ধনী

1
@ ইউগ্রেটস: আপনি কোন শেল ব্যবহার করছেন? (দয়া করে সংস্করণ অন্তর্ভুক্ত করুন)।
ধনী

0

আমি জানি এটি একটি পুরানো থ্রেড, তবে বিষয়টি এখনও আগের মতোই প্রাসঙ্গিক, বিশেষত যখন আমার মতো বোকা লোকেরা অসাবধানতাবশত বাশ ইতিহাস থেকে একটি 'সিপি ফাইলএ ফাইলবি'কে স্মরণ করে এবং উত্তেজিত করে যখন ফাইলটি এখনও গিটারে চেক-ইন না করা হয় আপ, এবং একটি সমস্ত-নাইটার পরে কোডিং কয়েক ঘন্টা ধারণ করে: - /

এই থ্রেডের ধারণাগুলিটির জন্য ধন্যবাদ আমি আমার হারিয়ে যাওয়া ফাইলটি পুরোপুরি পুনরুদ্ধার করতে সক্ষম হয়েছি, তবে আমি একটি 32 জিবি ডিস্ক এবং খুব অল্প র‌্যাম (উবুন্টু 18.04 চলছে) সহ আমার দূরবর্তী ভার্চুয়াল প্রাইভেট সার্ভারে হারিয়েছি, এবং 'গ্রেপ' হিসাবে আমার সমস্ত প্রত্যয় উপরেরটি 'অপর্যাপ্ত স্মৃতি' দিয়ে দ্রুত মারা যায়

আমার ক্ষেত্রে এটিই ছিল hexdump -C /dev/sdX1 | grep 'shortString'আমার উদ্ধারকাজে। গ্রেপের বিপরীতে, এটি কেবলমাত্র হেক্সের খুব সংকীর্ণ এএসসিআইআই উপস্থাপনা প্রদর্শন করে, তাই কেবলমাত্র একটি স্বল্প অনন্য স্ট্রিং সন্ধান করা এবং এমনকি এটি মোড়ানোও যেতে পারে তা মনে রাখা ভাল। একবার এটির কোনও হেক্স ঠিকানা ছিল যেখানে একটি ম্যাচ ছিল, আমি উপরের মতো অনুরূপ ফ্যাশনে 'ডিডি' ব্যবহার করতে সক্ষম হয়েছি, তবে আমি এটি দেখতে পেয়েছি যে এটি 4096 এর একটি ব্লকের আকারের ডিফল্ট বলে মনে হয়েছে, তাই আমার কেবল এটিই ছিল না হেক্স বাইট অ্যাড্রেসকে দশমিক হিসাবে রূপান্তর করুন তবে ডিডি-র স্কিপ প্যারামিটারের জন্য এটি 4 কে ব্লকে স্কেল করতে 4096 দ্বারা ভাগ করুন - অযথা, এই সংখ্যাটি যদি ডিডির জন্য খুব বেশি হয় তবে ত্রুটি বার্তা দেখে মনে হচ্ছে এটি এতে skip=পাসের সংখ্যাটির চেয়ে অবৈধ হওয়ার অভিযোগ করছে it ।

লোকদের $((0xabcd))কাছে কুডোস যারা বেশ ব্যবহার করার বিষয়ে টিপস যুক্ত করে বিচ্ছিন্নভাবে বিভক্ত হেক্স-> ডেস রূপান্তর :-)

কেবল আমার চূড়ান্ত শব্দ - আমার ক্ষেত্রে একই ফাইলের বেশ কয়েকটি অনুলিপি ছিল যা সমস্তই নিকটে ছিল। তবে হেক্সডাম্পের দ্বারা প্রতিবেদন করা সর্বাধিক ঠিকানা থেকে সর্বনিম্ন ঠিকানা বিয়োগ করে আমি সমস্ত সম্ভাব্য অনুলিপি সহ একটি M 5MB অঞ্চল চিহ্নিত করতে সক্ষম হয়েছি, যার অর্থ আমি নিম্নতম ঠিকানাতে ডিডিকে লক্ষ্য করতে এবং সেই অঞ্চলটি একটি অস্থায়ী ফাইলে বের করতে পারি। ভিম সম্পাদক এখন বাইনারি সামগ্রীগুলি মোটামুটি করুণভাবে পরিচালনা করে যাতে আপনি তারপরে এই পরীক্ষাটি পরীক্ষা করে পরীক্ষা করে নিতে পারেন এবং প্রয়োজন অনুসারে এটি পুনরায় আকার দিতে পারেন।

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