কীভাবে সম্পূর্ণ সিমিলিংক পাথ দেখতে পাবেন


128

যখন আমি ব্যবহার করি ls -la symlinkNameবা stat symlinkNameনা করি তখন সমস্ত পাথ প্রদর্শিত হয় (উদাঃ ../../../one/two/file.txt)

লিনাক্স কমান্ডটি কী পুরো পথটি প্রকাশ করে?


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

উত্তর:


225

realpathসমস্ত লিনাক্স স্বাদে উপলভ্য নয়, তবে readlinkহওয়া উচিত।

readlink -f symlinkName

উপরেরটি কৌশলটি করা উচিত।

বিকল্পভাবে, যদি আপনার উপরের দুটি ইনস্টলড না থাকে তবে অজগর ২.6 (বা তার পরে) ইনস্টল করা থাকলে আপনি নিম্নলিখিতটি করতে পারেন

python -c 'import os.path; print(os.path.realpath("symlinkName"))'

16
যদি ওএসএক্স ব্যবহার করে তবে -fপতাকাটি বাদ দিন এবং তারপরে এটি কাজ করে। অর্থাত্readlink symlinkName
জোশ ড্যাভেনপোর্ট

6
OSX এ -f পতাকা বাদ দিলে কেবল একটি আপেক্ষিক পথ দেয়
টিমক্সলি

2
এই প্রশ্নটি লিনাক্স সম্পর্কে ছিল y
ইয়ান স্ট্যাপলটন কর্ডাসকো

27

realpath <path to the symlink file> কৌতুক করা উচিত।


man realpathনীচে দেখায় যে এটি "জিএনইউ কোর্টিলস" এর অংশ, যা আমি নিশ্চিত যে উবুন্টুতে সর্বদা আসে, সুতরাং @ আইয়ানস্ট্যাপ্লেটন কর্ডাসকো " realpathসমস্ত লিনাক্সের স্বাদে উপলভ্য নয় " বললেও , এটি কমপক্ষে সকলের কাছেই পাওয়া উচিত উবুন্টু এবং উবুন্টু ডেরিভেটিভ স্বাদগুলি আমি বিশ্বাস করি।
গ্যাব্রিয়েল স্ট্যাপলস

10

ইউনিক্স স্বাদ -> ll symLinkName

ওএসএক্স -> readlink symLinkName

পার্থক্যটি 1 ম উপায়টি সিম লিঙ্ক পাথটি ঝলকানো উপায়ে প্রদর্শন করবে এবং ২ য় উপায় কেবল কনসোলে এটি প্রতিধ্বনিত করবে।


প্রশ্নটি বিশেষভাবে সম্পূর্ণ / পরম পথের জন্য জিজ্ঞাসা করছিল, আপেক্ষিক পথ নয় (../../file.txt)। এই উত্তর দুটিই আপেক্ষিক পথ দেবে।
উইসবাকি

3

তথ্য দেখার আরেকটি উপায় হ'ল statআদেশটি যা আরও তথ্য প্রদর্শন করবে। stat ~/.sshআমার মেশিন প্রদর্শন উপর কমান্ড

File: ‘/home/sumon/.ssh’ -> ‘/home/sumon/ssh-keys/.ssh.personal’
  Size: 34          Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 25297409    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/   sumon)   Gid: ( 1000/   sumon)
Access: 2017-09-26 16:41:18.985423932 +0600
Modify: 2017-09-25 15:48:07.880104043 +0600
Change: 2017-09-25 15:48:07.880104043 +0600
 Birth: -

আশা করি এটি কারও সাহায্য করবে।


1

সম্পূর্ণ সিমলিংক পাথ সহ একটি আউটপুট সমপরিমাণ পেতে আপনি awkএকটি systemকল দিয়ে ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:readlinkls

ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'

প্রদর্শিত হবে যেমন

thin_repair ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_restore ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_rmap ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_trim ->/home/user/workspace/boot/usr/bin/pdata_tools
touch ->/home/user/workspace/boot/usr/bin/busybox
true ->/home/user/workspace/boot/usr/bin/busybox

ls এটি রিডলিংক ছাড়াই করতে পারে; শুধু ব্যবহারls -l । এটিও মোটেও কাজ করে না, ডিরেক্টরিতে সমস্ত কিছুতে এটি লিঙ্ক করার চেষ্টা করে (লিঙ্কহীন) এবং যদি আপনার ls রং ব্যবহার করতে কনফিগার করা থাকে তবে পুরোপুরি বিচ্ছেদ হয়। স্রেফ ব্যবহার করুনfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'
হ্যাশব্রাউন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.