-L দিয়ে ব্যবহার সন্ধান করুন


34

আমার আছে

link -> file

আমি করি

find -L . -name 'link'

এবং পেতে

./link

তা কেন?

মানুষ বলে:

-ল: প্রতীকী লিঙ্কগুলি অনুসরণ করুন। ফাইলগুলি সম্পর্কে পরীক্ষা বা মুদ্রণের তথ্য সন্ধান করার সময়, ব্যবহৃত তথ্যটি সেই ফাইলের বৈশিষ্ট্য থেকে নেওয়া হবে যেখানে লিঙ্কটি পয়েন্ট করে, লিঙ্কটি থেকে নয় (যদি না এটি ব্রোইন কেন প্রতীকী লিঙ্ক হয় বা ফাইলটি পরীক্ষা করতে অক্ষম থাকে তবে যা লিঙ্ক পয়েন্ট)।

উত্তর:


12

এর সাহায্যে এটি ফাইলের বৈশিষ্ট্যগুলি - লিঙ্কের মতো নয়, সামগ্রী বা মেটাডেটা -Lপরীক্ষা করে । যেমন আপনি যদি ব্যবহার করেন তবে এটি ফাইলটির লিঙ্কটি নয়, যাচাই করবে :-atimeatime

$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$

testdir/linkএর পরে তৈরি করা হয়েছিল testdir/ref, তবে এটি যে ফাইলটি নির্দেশ করে তা এটি ছিল না।


1
আপনি আমার উদাহরণ গ্রহণ ব্যাখ্যা করতে পারেন? আমি যা বুঝি তা হ'ল: আমার উদাহরণে এটি অনুসন্ধান শুরু করে find এটি মুখোমুখি। এটি প্যাটার্নের 'লিঙ্ক' এর সাথে ./file এর নাম তুলনা করে এবং এটি মেলে না, তাই কোনও ও / পি রিপোর্ট করা উচিত নয়। আমার যুক্তিতে কী ভুল?
অঙ্কুর আগরওয়াল

আপনার উদ্ধৃত উদ্ধৃত ম্যানুয়াল থেকে, "ব্যবহৃত তথ্য লিঙ্কটি যে ফাইলটির উদ্দেশ্যে চিহ্নিত করা হবে সেগুলি থেকে নেওয়া হবে।" কোনও ফাইলের নাম এর বৈশিষ্ট্যগুলির মধ্যে একটি নয়, সুতরাং এটি এখনও লিঙ্কটির নাম ব্যবহার করে। এটি আসল ফাইলটির নামের চেয়েও অনেক বেশি কার্যকর।
কেভিন

"ফাইলটির নাম এর অন্যতম বৈশিষ্ট্য নয়" আমি এটি জানতাম না। সম্পত্তি হিসাবে বিবেচিত হয় না এমন ফাইলগুলির এই জাতীয় কোনও বৈশিষ্ট্য? সত্যি কথা বলতে আমি এখনও সন্দেহবাদী এবং অন্যেরা কী বলবে তা অপেক্ষা করবো।
অঙ্কুর আগরওয়াল

@Abc হিসাবে একই, কোনও ফাইলের নাম কোনও ফাইলের সম্পত্তি নয় তা জানতেন না। কোনও ডকুমেন্টেশন এবং / অথবা ম্যান পৃষ্ঠা (গুলি) এ এই টুকরো তথ্যটি কোথায় পাওয়া যাবে? দয়া করে উল্লেখ করুন যেখানে আমি কোনও ফাইলের বৈশিষ্ট্য সম্পর্কে আরও জানতে পারি।
জোকার

34

সাধারণ নিয়মটি হ'ল যদি কোনও কমান্ড লিঙ্কগুলিতে কাজ করে (অর্থাত্ ডিরেক্টরিতে এন্ট্রিগুলি, যা ইনোডের প্রতি নির্দেশক) তবে কমান্ডটি প্রতীকটি বিন্দুতে চিহ্নিত করার পরিবর্তে প্রতীককে নিজের হিসাবে বিবেচনা করে। অন্যথায় কমান্ডটি সিমলিংকটি কী নির্দেশ করে তা পরিচালনা করে। এইভাবে cpডিফল্ট অনুসারে symlinks অনুসরণ করে এবং লিঙ্ক দ্বারা নির্দেশিত ফাইলের বিষয়বস্তু অনুলিপি করে। আপনি যখন cpডিরেক্টরি উল্লেখ করে ডিরেক্টরি এন্ট্রিগুলি মোকাবেলা করতে বলবেন তখন -Rতা সিমলিঙ্কগুলি অনুসরণ করা বন্ধ করে দেয়। mvসর্বদা ডিরেক্টরি এন্ট্রিগুলির সাথে কাজ করে এবং তাই এটি কখনও প্রতীকগুলি অনুসরণ করে না।

findকমান্ড স্বাভাবিক কার্যকলাপ ডিরেক্টরির এন্ট্রি কাজ করার, তাই symlinks ডিফল্ট দ্বারা অনুসরণ করা হয় না। যোগ করা হচ্ছে -Lকারণ findসব বৈশিষ্ট্যের জন্য symlinks অনুসরণ করতে ব্যতীত এক, নাম যে যখন ডিরেক্টরি অনুসন্ধান করার সময় উপেক্ষিত করা যাবে না। উদ্দেশ্যে এক find -nameমত কমান্ড ইনপুট প্রদান করা হয় mvএবং rmযা ডিরেক্টরি এন্ট্রি উপর কাজ করে। সেখানে অপ্রীতিকর এবং বিস্ময়কর ফলাফল হলে হবে find -L dir -nameনাম ডিরেক্টরিটি এ রুট গাছ বাহিরে নির্দিষ্ট উত্পাদন পারে dir


কি দারুন! কেন এই সূক্ষ্ম ধারণাটি ম্যান পেজগুলিতে ভালভাবে চিত্রিত হয় না (যদি না আমি এটি মিস করি)? এটি আমার জন্য একটি বিস্ময়কর বিষয়।
অঙ্কুর আগরওয়াল

2
@Kyle জোনস There would be unpleasant and surprising results if এটি -L Dir -name` নাম উত্পাদন করতে পারে যে সরু বাহিরে ডিরেক্টরি ট্রি dir.` এ রুট => না যে হওয়া উচিত: সেখানে অপ্রীতিকর ... যদি হবে find dir -name pattern...? কারণ
অ্যাড

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