আমি শেল স্ক্রিপ্টে একটি কমান্ড রাখতে চাই যা ডিরেক্টরিতে একটি সিমিলিংক তৈরি করবে, তবে এই স্ক্রিপ্টটি বার বার চালানো যেতে পারে, সুতরাং পরবর্তী অনুরোধগুলিতে কমান্ডটি কোনও পরিবর্তন করা উচিত নয়।
এখানে ডিরেক্টরি কাঠামো:
% tree /tmp/test_symlink
/tmp/test_symlink
├── foo
└── repo
└── resources
└── snippets
├── php.snippets
├── sh.snippets
├── snippets.snippets
├── sql.snippets
└── vim.snippets
আমি foo/
স্নিপেটস নামে একটি সিমিলিংক তৈরি করতে চাই যা ডিরেক্টরিটিতে নির্দেশ করে /tmp/test_symlink/repo/resources/snippets
।
সুতরাং আমি চালান:
% ln -sfv /tmp/test_symlink/repo/resources/snippets /tmp/test_symlink/foo/snippets
'/tmp/test_symlink/foo/snippets' -> '/tmp/test_symlink/repo/resources/snippets'
যা পছন্দসই ফলাফল দেয়।
% tree /tmp/test_symlink
/tmp/test_symlink
├── foo
│ └── snippets -> /tmp/test_symlink/repo/resources/snippets
└── repo
└── resources
└── snippets
├── php.snippets
├── sh.snippets
├── snippets.snippets
├── sql.snippets
└── vim.snippets
5 ডিরেক্টরি, 5 ফাইল
তবে, যখন কমান্ডটি আবার চালানো হবে,
% ln -sfv /tmp/test_symlink/repo/resources/snippets /tmp/test_symlink/foo/snippets
'/tmp/test_symlink/foo/snippets/snippets' -> '/tmp/test_symlink/repo/resources/snippets'
এটি একটি ডিরেক্টরিতে একটি সিলিমিংক তৈরি করে, যেখানে সিমলিংক এলিয়াডি উপস্থিত থাকে যা প্রকৃত ডিরেক্টরিতে সিমলিংক রাখে
% tree /tmp/test_symlink
/tmp/test_symlink
├── foo
│ └── snippets -> /tmp/test_symlink/repo/resources/snippets
└── repo
└── resources
└── snippets
├── php.snippets
├── sh.snippets
├── snippets -> /tmp/test_symlink/repo/resources/snippets
├── snippets.snippets
├── sql.snippets
└── vim.snippets
কেন এটি হচ্ছে এবং আমি কীভাবে আদেশটি সংশোধন করতে পারি যাতে পরবর্তী অনুরোধগুলি এই অদ্ভুত প্রভাব তৈরি করতে না পারে?
-n, --no-dereference treat LINK_NAME as a normal file if it is a symbolic link to a directory
।-T, --no-target-directory treat LINK_NAME as a normal file always
আপনি কি মনে করেন যে সর্বদা একটি সিমলিংকটিকে ফাইল হিসাবে বিবেচনা করা ভাল? আমি ভাবতাম কি এই "বিশেষ" বিকল্পগুলির ব্যবহার সীমাবদ্ধ করা ভাল?