উত্তর:
এখান থেকে: https://stackoverflow.com/a/4031502/804713
ম্যাকপোর্ট এবং হোমব্রু গ্রিডলিঙ্ক (জিএনইউ রিডলিংক) সমন্বিত একটি কোরিউটিলস প্যাকেজ সরবরাহ করে। ম্যাক ক্যালউইট পোস্টকে ম্যাকব.কম এ ক্রেডিট
মিশ্রিত কোর্টিল ইনস্টল
greadlink -f file.txt
এটি করার অনেক উপায় আছে; এখানে একটি উদাহরণ যা আপনার পক্ষে কাজ করতে পারে:
claw:~ jonv$ echo `pwd`/`ls config.in.php`
/Users/jonv/config.in.php
আপনি যদি আরও উদাহরণ চান তবে স্ট্যাকওভারফ্লোতে এই পোস্টে একটি গুচ্ছ রয়েছে ।
সম্পূর্ণ পাথ সহ সমস্ত ফাইল তালিকাভুক্ত করার জন্য আপনি "ফাইন্ড" কমান্ডটি ব্যবহার করতে পারেন:
find DirectoryName -type f
বা কেবল নিম্নলিখিত:
find . -type f
প্রদত্ত সমাধানগুলির কোনও পছন্দ হয়নি তাই আমি https://stackoverflow.com/a/22684652/953327 এর নিজস্ব ভিত্তিক আপ করেছি
উপনাম তৈরি করুন যা কেবল একটি ফাংশন কল যা একত্রিত হয় pwd
এবং ls $1
। আপনি .bash_profile
যদি এটি চয়ন করেন তবে আপনি এটিতে এটি যুক্ত করতে পারেন।
alias lsf='function _lsf(){ echo "$(pwd)/$(ls $1)"; };_lsf'
ব্যবহারের উদাহরণ:
lsf registry.lock
-> /tmp/registry.lock
আমি lsf
"তালিকা পূর্ণ" বা "তালিকার ফাইল" এর জন্য বেছে নিয়েছি , আমার কাছে তা বোঝায় তবে সংশোধন করতে নির্দ্বিধায়।
আপডেট (ধন্যবাদ @ সান্টিয়াগো-অরিজিটি) আপেক্ষিক পাথ দিয়ে এটি ব্যবহার করতে সক্ষম হতে (যেমন lsf ../../readme.md
)
alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
lsf ../../readme.md
তাই আমি আপনার সংস্করণটি কিছুটা পরিবর্তন করেছিalias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
আমি আপনার প্রয়োজনের চেয়ে আরও চেয়েছি, আমার কোনও আপেক্ষিক ডিরেক্টরিতে ফাইলগুলি সম্পর্কে জিজ্ঞাসা করতে সক্ষম হওয়া দরকার ../../readme.md
, এবং ফলাফলটি এমন কিছু হওয়া উচিত/Users/santi/readme.md
সুতরাং আমি একটি ফোল্ডারে একটি (সম্পাদনযোগ্য) স্ক্রিপ্ট $PATH
তৈরি lsf
করেছি যা নীচের বিষয়বস্তুগুলির সাথে ডাকা অংশটির একটি অংশ :
#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )
সুতরাং আপনি এটি ব্যবহার করতে পারেন:
santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md
/Users/santi/p/readme.md
কোনও পরামিতি আপনাকে সতর্কতা দেয় না
santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md
ভুয়া ডিরেক্টরি আপনাকে সতর্কতা দেয় (কারণ dirname
)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory
ভুয়া ফাইল কিন্তু বাস্তব ডিরেক্টরি সতর্ক করে না (আপনি প্রয়োজন হলে বৈধতা যোগ করতে পারেন)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md
/Users/santi/p/fakefile.md
নিম্নলিখিতটি ওয়ার্কিং ডিরেক্টরিতে একটি ফাইল সন্ধান করবে যা file.txt
এটির সাথে মেলে এবং তার পরম পথটি ফিরে আসবে
find `pwd` -name file.txt
ব্যবহার realpath
উদাহরণ:
$ realpath README.md
/Users/joe/my/long/directory/structure/README.md
স্ট্যাকওভারফ্লোতে এখানে উত্তর দেওয়া হয়েছে: https://stackoverflow.com/a/3915075/441960
এফওয়াইআই, আমার ম্যাকওএস সংস্করণ (ওএসএক্স):
$ uname -a
Darwin my-machine 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
-f
নন-জিএনইউতে কাজ করবে না এবং কীভাবে এটি কাজ করবে। এইটা কাজ করে. ধন্যবাদ