আপনি কী জিজ্ঞাসা করছেন তা আমি পুরোপুরি বুঝতে পারি না। যদি আমি আরও ভাল না জানতাম তবে আমি মনে করি আপনি কোনও ফাইলের সাথে ডিল করার সময় এটি সনাক্ত করার কোনও উপায় আছে কিনা তা জিজ্ঞাসা করছেন। আমি বিশ্বাস করি না এটি সম্ভব।
কেবলমাত্র আমি যে পদ্ধতিটি ধারণা করতে পারি তা হ'ল এমন একটি অনুসন্ধান করা যেখানে আপনি বিশেষত ডিরেক্টরি গাছের একটি নির্দিষ্ট শাখার মাধ্যমে সন্ধান শুরু করেন।
উদাহরণ
$ tree
.
`-- a
`-- b
|-- c
| `-- d
| `-- e -> ../../../../a/b
`-- e -> e
5 directories, 1 file
find
কমান্ড এই লুপ নির্ণয় করতে পারবে কিন্তু না সত্যিই আপনি এটি সম্পর্কে একটি সম্পূর্ণ অনেক বলুন।
$ find -L . -mindepth 15
find: File system loop detected; `./a/b/c/d/e' is part of the same file system loop as `./a/b'.
find: `./a/b/e': Too many levels of symbolic links
আমি যথেচ্ছভাবে 15 টি স্তর বেছে নিয়েছি যাতে কোনও আউটপুট দ্বারা আটকানো রোধ করতে পারে find
। আপনি -mindepth
যদি ডিরেক্টরি ট্রি প্রদর্শিত হচ্ছে সে বিষয়ে যত্ন না রাখেন তবে আপনি সেই স্যুইচটি ( ) ফেলে দিতে পারেন । find
কমান্ড এখনও লুপ এবং স্টপ সনাক্ত করে:
$ find -L .
.
./a
./a/b
./a/b/c
./a/b/c/d
find: File system loop detected; `./a/b/c/d/e' is part of the same file system loop as `./a/b'.
find: `./a/b/e': Too many levels of symbolic links
ঘটনাক্রমে, আপনি যদি MAXSYMLINKS
লিনাক্সে স্পষ্টত 40 এর ডিফল্ট (কার্নেলের নতুন 3.x সংস্করণ) ওভাররাইড করতে চান তবে আপনি এই U&L প্রশ্নোত্তর শিরোনাম দেখতে পারেন: আপনি কীভাবে MAXSYMLINKS বৃদ্ধি করবেন ?
সিমলিংকস কমান্ড ব্যবহার করে
এমন একটি সরঞ্জাম রয়েছে যা এফটিপি সাইট রক্ষণাবেক্ষণকারীরা ডাকে ব্যবহার করতে পারত symlinks
যা প্রতীকী লিঙ্কগুলির কারণে সৃষ্ট লম্বা বা ঝুলন্ত গাছগুলির সাথে সমস্যাগুলি প্রকাশ করতে সহায়তা করবে।
কিছু ক্ষেত্রে symlinks
টুলটি আপত্তিকর লিঙ্কগুলিও মুছতে ব্যবহৃত হতে পারে।
উদাহরণ
$ symlinks -srv a
lengthy: /home/saml/tst/99159/a/b/c/d/e -> ../../../../a/b
dangling: /home/saml/tst/99159/a/b/e -> e
গ্লিবসি লাইব্রেরি
গ্লিবসি লাইব্রেরিটি এটিকে ঘিরে কিছু সি ফাংশন সরবরাহ করে বলে মনে হচ্ছে তবে আমি তাদের ভূমিকা বা আসলে কীভাবে সেগুলি ব্যবহার করব তা পুরোপুরি জানি না। সুতরাং আমি কেবল তাদের কাছে আপনাকে নির্দেশ করতে পারি।
ম্যান পেজ, man symlink
ডাকা ফাংশনটির জন্য ফাংশন সংজ্ঞা দেখায় symlink()
। বর্ণনাটি এরকম হয়:
syMLink () newpath নামে একটি প্রতীকী লিঙ্ক তৈরি করে যার মধ্যে স্ট্রিং ওল্ডপ্যাথ রয়েছে।
ত্রুটিগুলির মধ্যে একটিতে বলা হয়েছে যে এই ফাংশনটি ফিরে আসে:
ইলুপ অনেক নতুন প্রতীকী লিঙ্কগুলির নতুনপথটি সমাধান করার ক্ষেত্রে মুখোমুখি হয়েছিল।
আমি আপনাকে ম্যান পৃষ্ঠাতেও পরিচালনা করব, man path_resolution
যা ইউনিক্স কীভাবে ডিস্কের আইটেমগুলির জন্য পথ নির্ধারণ করে তা আলোচনা করে। বিশেষত এই অনুচ্ছেদ।
If the component is found and is a symbolic link (symlink), we first
resolve this symbolic link (with the current lookup directory as starting
lookup directory). Upon error, that error is returned. If the result is
not a directory, an ENOTDIR error is returned. If the resolution of the
symlink is successful and returns a directory, we set the current lookup
directory to that directory, and go to the next component. Note that the
resolution process here involves recursion. In order to protect the
kernel against stack overflow, and also to protect against denial of
service, there are limits on the maximum recursion depth, and on the maximum
number of symbolic links followed. An ELOOP error is returned when the
maximum is exceeded ("Too many levels of symbolic links").
readlink ...
উপরের পরিস্থিতি সম্পর্কে কি বলে?