linux - কিভাবে লিনাক্সে একটি ফাইল সিমলিঙ্ক করবেন?
symlink (12)
লিনাক্সে সিম্বলিক লিঙ্ক বা নরম লিঙ্ক তৈরি করা:
ওপেন বাশ প্রম্পট এবং আপনার ফাইলের একটি প্রতীকী লিঙ্ক তৈরি করতে নিচের কমান্ডটি টাইপ করুন:
একটি) ফোল্ডারটি যেখানে আপনি একটি নরম লিঙ্ক তৈরি করতে চান এবং টাইপআউট কমান্ড নীচের হিসাবে উল্লেখ করতে চান :
$ ln -s (path-to-file) (symbolic-link-to-file)
$ ln -s /home/user/file new-file
বি) আপনার নতুন ফাইল নাম পথ Goto এবং টাইপ করুন :
$ ls -lrt (To see if the new-file is linked to the file or not)
উদাহরণ:
ls -lrt
lrwxrwxrwx 1 user user 24 Aug 6 23:40 new-file -> /home/user/file
Note: Where, A -> B Means, A is symbolically linked to B
আমি লিনাক্সে একটি প্রতীকী লিঙ্ক তৈরি করতে চাই। আমি এই bash কমান্ডটি লিখেছি যেখানে প্রথম পঠনটি আমি ফোল্ডারে লিঙ্ক করতে চাই এবং দ্বিতীয় পথটি সংকলিত উৎস।
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
এটা কি সঠিক?
(কারণ একটি ASCII ছবি একটি হাজার অক্ষর মূল্য।)
একটি তীর একটি সহায়ক স্মারক হতে পারে, বিশেষ করে যেহেতু এটি প্রায় ঠিক এ্যামাকসের ক্লান্তিতে কেমন দেখায়।
এবং বড় ছবি যাতে আপনি উইন্ডোজ সংস্করণে বিভ্রান্ত হন না
লিনাক্স:
ln -s target <- linkName
উইন্ডোজ:
mklink linkName -> target
আপনি এই হিসাবে তাকান পারে
ln -s "to-here" <- "from-here"
mklink "from-here" -> "to-here"
এখানে from-here
উপস্থিত থাকা উচিত নয়, এটি তৈরি করা উচিত, যখন to-here
উপস্থিত থাকা উচিত (আইআইআরসি)।
(আমি সবসময় বিভিন্ন কমান্ড এবং আর্গুমেন্ট একটি প্রাক বিদ্যমান অবস্থান জড়িত করা উচিত, বা তৈরি করা হবে কিনা উপর মিশ্রিত করা।)
সম্পাদনা করুন: এটি এখনও আমার জন্য ধীরে ধীরে ডুবে যাচ্ছে; আমি আমার নোট লিখেছেন অন্য উপায় আছে।
ln -s (target exists) (link is made)
mklink (link is made) (target exists)
আমি মানুষের তথ্য মধ্যে শব্দ "লক্ষ্য" এবং "ডিরেক্টরি" একটু বিভ্রান্তিকর খুঁজে।
টার্গেটটি এমন ফোল্ডার যা আমরা সিমলিংক করছি এবং প্রকৃত সিমলিঙ্ক ডিরেক্টরি (কোনও ডিরেক্টরি যা আপনি সিম্পলিং করতে পারবেন না), যদি কেউ একই বিভ্রান্তির সম্মুখীন হয় তবে একা বোধ করবেন না।
এটি একটি সিমলিঙ্ক তৈরি করার (লিনাক্সে) আমার ব্যাখ্যা:
ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK
আপনি ফোল্ডারটিতে নেভিগেট করতে পারেন যেখানে আপনি সিমলিঙ্ক তৈরি করতে চান এবং কমান্ডটি চালাতে পারেন বা NAME-OF-YOUR-SYMLINK পরিবর্তে আপনার সিমলিংকের জন্য সম্পূর্ণ প্যাথ নির্দিষ্ট করতে পারেন।
cd /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER
ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK
অথবা
ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER/NAME-OF-YOUR-SYMLINK
আমি এই (এখনও) সামান্য বিভ্রান্তিতে যারা সাহায্য করে আশা করি।
একটি নতুন symlink তৈরি করতে (symlink ইতিমধ্যে উপস্থিত থাকলে ব্যর্থ হবে):
ln -s /path/to/file /path/to/symlink
একটি symlink তৈরি বা আপডেট করতে:
ln -sf /path/to/file /path/to/symlink
এটি স্ট্যাক ওভারফ্লো তাই আমি মনে করি আপনি কোড চান:
নিম্নলিখিত সমস্ত কোড অনুমান করে যে আপনি /tmp/realfile
/tmp/link
লিঙ্কযুক্ত একটি প্রতীকী লিঙ্ক তৈরি করতে চান।
সতর্কতা : যদিও এই কোডটি ত্রুটিগুলির জন্য চেক করে তবে এটি /tmp/realfile
আসলে বিদ্যমান কিনা তা পরীক্ষা করে না! এটি একটি মৃত লিঙ্ক এখনও বৈধ এবং আপনার কোডের উপর নির্ভর করে আপনি (খুব কমই) প্রকৃত ফাইলের আগে লিঙ্কটি তৈরি করতে চান।
শেল (ব্যাশ, জশ, ...)
#!/bin/sh
ln -s /tmp/realfile /tmp/link
বাস্তব সহজ, আপনি কমান্ড লাইন (যা শেল হয়) এ এটি করতে হবে। সমস্ত ত্রুটি হ্যান্ডলিং শেল ইন্টারপ্রেটার দ্বারা সম্পন্ন করা হয়। এই কোডটি অনুমান করে যে আপনার একটি শেল ইন্টারপ্রেটার আছে /bin/sh
।
প্রয়োজন হলে আপনি এখনও $?
ব্যবহার করে আপনার নিজের ত্রুটি হ্যান্ডলিং বাস্তবায়ন করতে পারে $?
লিঙ্ক সফলভাবে তৈরি করা হয়েছে, যা পরিবর্তনশীল শুধুমাত্র 0 সেট করা হবে।
সি এবং সি ++
#include <unistd.h>
#include <stdio.h>
int main () {
if( symlink("/tmp/realfile", "/tmp/link") != 0 )
perror("Can't create the symlink");
}
symlink
তৈরি করা যেতে পারে যখন symlink
শুধুমাত্র 0 প্রদান করে। অন্য ক্ষেত্রে আমি সমস্যা সম্পর্কে আরো বলতে perror
ব্যবহার করছি।
পার্ল
#!/usr/bin/perl
if( symlink("/tmp/realfile", "/tmp/link") != 1) {
print STDERR "Can't create the symlink: $!\n"
}
এই কোডটিতে আপনি একটি perl 5 ইন্টারপ্রেটার আছে /usr/bin/perl
এ অনুমান করেছেন। symlink
তৈরি করা যেতে পারে যদি symlink
শুধুমাত্র 1 প্রদান করে। অন্যান্য ক্ষেত্রে আমি স্ট্যান্ডার্ড ত্রুটি আউটপুট ব্যর্থতার কারণে মুদ্রণ করছি।
কিভাবে vagrant মধ্যে symlink তৈরি করতে। পদক্ষেপ:
- ভানেন্ট ফাইলে একটি সিঙ্ক হওয়া ফোল্ডার তৈরি করুন। উদাহরণস্বরূপ config.vm.synced_folder "F: / Sunburst / source / sunburst / lms", "/ source" F: / sunburst / source / sunburst / lms: - যেখানে উৎস কোড, / উত্স: - ভানেন্টের ভিতরে ডিরেক্টরি পথ
- Vagrant আপ এবং টাইপ যোনি ssh এবং উৎস ডিরেক্টরি যেমন সিডি উৎস যেতে
- আপনার উত্স কোড ফোল্ডার গঠন যাচাই করুন উৎস ডিরেক্টরি পাওয়া যায়। যেমন / উৎস / স্থানীয়
- তারপরে গেস্ট মেশিন ডিরেক্টরিতে যান যেখানে ফাইলগুলি ব্রাউজারের সাথে সংযুক্ত থাকে। ফাইল ব্যাকআপ পেতে পরে। উদাহরণস্বরূপ sudo mv স্থানীয় local_bk
- তারপর symlink যেমন sudo ln -s / উত্স / স্থানীয় স্থানীয় তৈরি করুন। স্থানীয় গড় লিঙ্ক-নাম (গেস্ট মেশিনের ফোল্ডার নাম যা আপনি লিঙ্ক করতে যাচ্ছেন) যদি আপনার সিমলিঙ্কটি সরানোর প্রয়োজন হয়: - sudo rm স্থানীয় লিখুন
যদি আপনি ডিরেক্টরীতে থাকেন যেখানে আপনি সিমলিঙ্ক তৈরি করতে চান তবে দ্বিতীয় পথটি উপেক্ষা করুন।
cd myfolder
ln -s target
এটি myfolder ভিতরে target
symlink তৈরি করবে।
সাধারণ সিনট্যাক্স
ln -s TARGET LINK_NAME
লিঙ্ক দুই ধরনের হয়:
প্রতীকী লিঙ্ক: অন্য কোনও ফাইলের বিমূর্ত অবস্থান নির্দেশ করে একটি প্রতীকী পাথ পড়ুন
হার্ড লিঙ্ক: প্রকৃত তথ্য নির্দিষ্ট অবস্থান পড়ুন।
আপনার ক্ষেত্রে symlinks:
ln -s source target
আপনি http://man7.org/linux/man-pages/man7/symlink.7.html উল্লেখ করতে পারেন
আপনি খুব কঠিন লিঙ্ক তৈরি করতে পারেন
একটি ফাইলের হার্ড লিঙ্কটি মূল ডিরেক্টরি এন্ট্রি থেকে আলাদা করা যায়; কোনও ফাইলের কোনও পরিবর্তন ফাইলটির রেফারেন্সে ব্যবহৃত নামটির থেকে কার্যকরভাবে কার্যকর। হার্ড লিঙ্কে সাধারণত ডিরেক্টরিগুলির উল্লেখ নাও হতে পারে এবং ফাইল সিস্টেমগুলি প্রসারিত করতে পারে না।
ln source link
ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME
ln -s TARGET LINK_NAME
যেখানে- -s
এটি প্রতীকী করে তোলে।
ln [-Ffhinsv] source_file [target_file]
link, ln -- make links
-s Create a symbolic link.
A symbolic link contains the name of the file to which it is linked.
An ln command appeared in Version 1 AT&T UNIX.