প্রশ্ন কমান্ড লাইনের মাধ্যমে প্রতীকী লিঙ্ক লক্ষ্য খুঁজে বের করুন


বলুন যে আমি একটি প্রতীকী লিঙ্ক স্থাপন করেছি:

ln -s /root/Public/mytextfile.txt /root/Public/myothertextfile.txt

লক্ষ্য কি দেখতে একটি উপায় আছে myothertextfile.txt কমান্ড লাইন ব্যবহার করা হয়?


106
2017-10-19 18:36


উত্স




উত্তর:


ব্যবহার -f ক্যানোনিকালাইজড সংস্করণ মুদ্রণ পতাকা। উদাহরণ স্বরূপ:

readlink -f /root/Public/myothertextfile.txt

থেকে man readlink:

-f, --canonicalize
      canonicalize by following every symlink in every component of the given name recursively; all but the last component must exist

143
2017-10-19 18:42



হিসাবে প্রস্তাবিত আরেকটি প্রশ্ন, আপনি ব্যবহার করতে পারেন readlink -f। - Denilson Sá Maia
ম্যাক ওএস এক্স এ এই কাজ পেতে, brew install coreutils। এটি চিঠি দিয়ে prefixed কমান্ডের মৌলিক gnu সংস্করণগুলি ইনস্টল করে g, যেমন greadlink -f somefile - Mike D
সঙ্গে -ফ সুইচ, কমান্ড আমার ক্ষেত্রে কিছুই ফেরত .. - sotn
ব্যবহার করে -ফ আমাকে যে তথ্যটি চেয়েছিলেন তা দিয়েছিলেন, যেমন একাধিক সিমলিঙ্ক সমাধান করা এবং শেষ লক্ষ্য দেখাচ্ছে। - isapir


readlink আপনি চান কমান্ড। আপনি কমান্ডের জন্য মানুষের পাতা তাকান উচিত। কারণ আপনি যদি প্রকৃত ফাইলের প্রতীকী লিঙ্কগুলির একটি শৃঙ্খলা অনুসরণ করতে চান তবে আপনাকে -e বা -f সুইচটি প্রয়োজন:

$ ln -s foooooo zipzip   # fooooo doesn't actually exist
$ ln -s zipzip zapzap

$ # Follows it, but doesn't let you know the file doesn't actually exist
$ readlink -f zapzap
/home/kbrandt/scrap/foooooo

$ # Follows it, but file not there
$ readlink -e zapzap

$ # Follows it, but just to the next symlink
$ readlink zapzap
zipzip

19
2017-10-19 19:03



প্রথম উত্তর দিয়ে কিছুই ভুল, কিন্তু এই এক আরো সম্পূর্ণ এবং সহায়ক। - Mike S


এটি কাজ করবে:

ls -l /root/Public/myothertextfile.txt

কিন্তু readlink প্যারিসিংয়ের পরিবর্তে স্ক্রিপ্টে ব্যবহারের জন্য পছন্দ করা হবে ls


4
2017-10-19 19:02





আপনি যদি লিঙ্কটির উত্স এবং গন্তব্যটি প্রদর্শন করতে চান তবে চেষ্টা করুন stat -c%N files*। উদাহরণস্বরূপ

$ stat -c%N /dev/fd/*
‘/dev/fd/0’ -> ‘/dev/pts/4’
‘/dev/fd/1’ -> ‘/dev/pts/4’

এটা পার্সিং জন্য ভাল নয় (ব্যবহার readlink যে জন্য), কিন্তু এটি লঙ্ঘন ছাড়া লিঙ্ক নাম এবং গন্তব্য দেখায় ls -l

-c লেখা যেতে পারে --format এবং %N অর্থ "প্রতীকী লিঙ্ক যদি dereference সঙ্গে ফাইল নাম উদ্ধৃত"।


4
2017-09-29 17:44





দ্য readlink একটি ভাল জিনিস, কিন্তু জিএনইউ নির্দিষ্ট এবং অ ক্রস প্ল্যাটফর্ম। আমি জন্য ক্রস প্ল্যাটফর্ম স্ক্রিপ্ট লিখতে ব্যবহৃত /bin/sh, তাই আমি ভালো কিছু ব্যবহার করতে চাই:

 ls -l /root/Public/myothertextfile.txt | awk '{print $NF}'

বা:

 ls -l /root/Public/myothertextfile.txt | awk -F"-> " '{print $2}'

কিন্তু এই বিভিন্ন প্ল্যাটফর্ম পরীক্ষা করা প্রয়োজন। আমি মনে করি তারা কাজ করবে, কিন্তু 100% নিশ্চিত না ls আউটপুট ফরমেট.


2
2018-04-17 21:35





আপনি ব্যবহার করতে না পারেন readlink, তারপর ফলাফল পার্সিং ls -l এই মত করা যেতে পারে।

স্বাভাবিক ফলাফল হবে:

ls -l /root/Public/myothertextfile.txt
lrwxrwxrwx 1 root root 30 Jan  1 12:00 /root/Public/myothertextfile.txt -> /root/Public/mytextfile.txt

সুতরাং আমরা "->" এবং তীর অন্তর্ভুক্ত সবকিছু আগে প্রতিস্থাপন করতে চান। আমরা ব্যবহার করতে পারে sed এই জন্য:

ls -l /root/Public/myothertextfile.txt | sed 's/^.* -> //'
/root/Public/mytextfile.txt

1
2017-09-02 08:25





ll অথবা ls -l আপনার প্রতীকী লিঙ্ক এবং এর লক্ষ্য সহ ডিরেক্টরি আইটেম তালিকাভুক্ত করা উচিত

cd -P /root/Public/myothertextfile.txt (আপনার ক্ষেত্রে) মূল পাথ নির্দেশ করা উচিত


0
2018-05-02 13:48