আমি দৌড়াই
ln /a/A /b/B
আমি ফোল্ডারে দেখতে চাই a
যেখানে একটি ফাইল A ফাইলটি নির্দেশ করে ls
।
আমি দৌড়াই
ln /a/A /b/B
আমি ফোল্ডারে দেখতে চাই a
যেখানে একটি ফাইল A ফাইলটি নির্দেশ করে ls
।
উত্তর:
এর সাথে আপনার ফাইলের জন্য ইনোড নম্বরটি পেতে পারেন
ls -i
এবং
ls -l
রেফারেন্স গণনা দেখায় (একটি নির্দিষ্ট ইনোডে হার্ডলিঙ্কের সংখ্যা)
আপনি ইনোড নম্বরটি খুঁজে পাওয়ার পরে, আপনি একই ইনোড সহ সমস্ত ফাইল সন্ধান করতে পারেন:
find . -inum NUM
বর্তমান দির (।) এ ইনোড NUM এর জন্য ফাইলের নাম প্রদর্শন করবে
আপনার প্রশ্নের সত্যিই একটি সুসংজ্ঞাত উত্তর নেই। সিমলিঙ্কগুলির বিপরীতে, হার্ডলিঙ্কগুলি "মূল ফাইল" থেকে পৃথক পৃথক।
ডিরেক্টরি এন্ট্রিগুলিতে একটি ফাইলের নাম এবং একটি ইনডের পয়েন্টার থাকে। ইনোডে পরিবর্তে ফাইল মেটাডেটা এবং (প্রকৃত ফাইলের বিষয়বস্তুগুলিতে পয়েন্টার) থাকে। একটি হার্ড লিঙ্ক তৈরি করা একই ফাইলের অন্য ফাইলনাম + রেফারেন্স তৈরি করে। এই তথ্যসূত্রগুলি একমুখী (সাধারণত ফাইল সিস্টেমগুলিতে, কমপক্ষে) - ইনোডটি কেবল একটি রেফারেন্স গণনা রাখে। "আসল" ফাইলের নামটি কোনটি খুঁজে বের করার কোনও অভ্যন্তরীণ উপায় নেই।
যাইহোক, এই কারণেই সিস্টেম কল করে একটি ফাইল "ডিলিট" করতে unlink
। এটি কেবল একটি হার্ডলিঙ্ক অপসারণ করে। ইনোডের একটি সংযুক্ত ডেটা কেবল তখনই মুছে ফেলা হবে যদি আইনের কোডের রেফারেন্স গণনা 0 এ নেমে আসে।
প্রদত্ত ইনোডের অন্যান্য উল্লেখগুলি খুঁজে পাওয়ার একমাত্র উপায় হ'ল ফাইল সিস্টেমে অনুসন্ধানের মাধ্যমে অনুসন্ধান করা ইনোডকে কোন ফাইলগুলি নির্দেশ করে তা পরীক্ষা করে দেখানো। এই চেকটি সম্পাদন করতে আপনি শেল থেকে 'টেস্ট এ-বিফ বি' ব্যবহার করতে পারেন।
ইউএনআইএক্সের কঠোর লিঙ্ক এবং প্রতীকী লিঙ্ক রয়েছে ( যথাক্রমে "ln"
এবং এর সাথে তৈরি "ln -s"
)। সিম্বলিক লিঙ্কগুলি কেবল একটি ফাইল যা অন্য কোনও ফাইলের আসল পাথ থাকে এবং ফাইল সিস্টেমগুলি অতিক্রম করতে পারে।
ইউনিক্সের প্রথম দিক থেকেই হার্ড লিঙ্কগুলি প্রায় ছিল (যে আমি যেভাবেই মনে করতে পারি, এবং এটি বেশ কিছুক্ষণের মধ্যে ফিরে আসবে)। তাঁদের দুটি ডিরেক্টরির এন্ট্রি রেফারেন্স যে সঠিক একই অন্তর্নিহিত তথ্য। একটি ফাইলের ডেটা এর দ্বারা নির্দিষ্ট করা হয় inode
। একটি ফাইল সিস্টেমের প্রতিটি ফাইল একটি ইনোডকে নির্দেশ করে তবে প্রতিটি ফাইল একটি অনন্য আইনের দিকে নির্দেশ করার দরকার নেই - এখান থেকেই শক্ত লিঙ্কগুলি আসে।
যেহেতু আইোনডগুলি কেবলমাত্র একটি প্রদত্ত ফাইল সিস্টেমের জন্য অনন্য, তাই হার্ড লিঙ্কগুলি একই ফাইল সিস্টেমে থাকতে হবে (প্রতীকী লিঙ্কগুলির বিপরীতে)। লক্ষ করুন যে, প্রতীকী লিঙ্কগুলির বিপরীতে কোনও সুবিধাযুক্ত ফাইল নেই - সেগুলি সব সমান। ইনোড ব্যবহার করে সমস্ত ফাইল মুছে ফেলা হবে (এবং সমস্ত প্রক্রিয়া পাশাপাশি এটি বন্ধ করে দেয় তবে এটি একটি আলাদা সমস্যা) তখনই ডেটা অঞ্চলটি প্রকাশ করা হবে ।
আপনি "ls -i"
একটি নির্দিষ্ট ফাইলের ইনোড পেতে কমান্ডটি ব্যবহার করতে পারেন । তারপরে "find <filesystemroot> -inum <inode>"
প্রদত্ত ইনোড সহ ফাইল সিস্টেমে সমস্ত ফাইল সন্ধান করতে আপনি কমান্ডটি ব্যবহার করতে পারেন ।
এখানে একটি স্ক্রিপ্ট যা ঠিক এটি করে। আপনি এটি দিয়ে:
findhardlinks ~/jquery.js
এবং এটি সেই ফাইল সিস্টেমে সমস্ত ফাইল সন্ধান করবে যা সেই ফাইলটির জন্য হার্ড লিঙ্কসমূহ:
pax@daemonspawn:~# ./findhardlinks /home/pax/jquery.js
Processing '/home/pax/jquery.js'
'/home/pax/jquery.js' has inode 5211995 on mount point '/'
/home/common/jquery-1.2.6.min.js
/home/pax/jquery.js
এখানে স্ক্রিপ্ট।
#!/bin/bash
if [[ $# -lt 1 ]] ; then
echo "Usage: findhardlinks <fileOrDirToFindFor> ..."
exit 1
fi
while [[ $# -ge 1 ]] ; do
echo "Processing '$1'"
if [[ ! -r "$1" ]] ; then
echo " '$1' is not accessible"
else
numlinks=$(ls -ld "$1" | awk '{print $2}')
inode=$(ls -id "$1" | awk '{print $1}' | head -1l)
device=$(df "$1" | tail -1l | awk '{print $6}')
echo " '$1' has inode ${inode} on mount point '${device}'"
find ${device} -inum ${inode} 2>/dev/null | sed 's/^/ /'
fi
shift
done
. ./findhardlinks.bash
ওএস এক্স এর জেডএসে থাকাকালীন আমি এটি শুরু করি । স্ক্রিনে আমার বর্তমান উইন্ডোটি বন্ধ হয়ে যায়।
INUM=$(stat -c %i $1)
। এছাড়াও NUM_LINKS=$(stat -c %h $1)
। আপনি man stat
ব্যবহার করতে পারেন আরও ফর্ম্যাট ভেরিয়েবলের জন্য দেখুন।
ls -l
প্রথম কলামে অনুমতিগুলি উপস্থাপন করবে। দ্বিতীয় কলামটি হবে ফাইলের সাব-আইটেমের (ডিরেক্টরিগুলির জন্য) সংখ্যা বা একই ডেটার পাথের সংখ্যা (মূল লিঙ্ক সহ হার্ড লিঙ্কগুলি)। উদাহরণ:
-rw-r--r--@ 2 [username] [group] [timestamp] HardLink
-rw-r--r--@ 2 [username] [group] [timestamp] Original
^ Number of hard links to the data
inode
ডিস্ক সামগ্রীতে পরিবর্তিত বিন্দুতে নির্দেশ করে।
নিম্নলিখিত সহজতর সম্পর্কে কীভাবে? (ল্যাটারের উপরের দীর্ঘ স্ক্রিপ্টগুলি প্রতিস্থাপন করতে পারে!)
আপনার যদি একটি নির্দিষ্ট ফাইল থাকে <THEFILENAME>
এবং ডিরেক্টরিতে ছড়িয়ে থাকা এর সমস্ত হার্ডলিঙ্কগুলি জানতে চান <TARGETDIR>
, (যা এমনকি পুরো ফাইল সিস্টেমের দ্বারা বর্ণিত হতে পারে /
)
find <TARGETDIR> -type f -samefile <THEFILENAME>
যুক্তি প্রসারিত করা, যদি আপনি <SOURCEDIR>
একাধিক হার্ড-লিঙ্ক ছড়িয়ে থাকা সমস্ত ফাইলই জানতে চান <TARGETDIR>
:
find <SOURCEDIR> -type f -links +1 \
-printf "\n\n %n HardLinks of file : %H/%f \n" \
-exec find <TARGETDIR> -type f -samefile {} \;
-type f
কারণ ফাইলটিও একটি ডিরেক্টরি হতে পারে।
.
এবং ..
ডিরেক্টরিগুলি থেকে এন্ট্রি hardlinks হয়। লিঙ্ক গণনা থেকে ডিরেক্টরিতে কত সাবডিয়ার রয়েছে তা আপনি বলতে পারেন .
। এটি find -samefile .
এখনও যাইহোক, যেহেতু এখনও কোনও subdir/..
আউটপুট মুদ্রণ করবে না । find
(কমপক্ষে জিএনইউ সংস্করণ) ..
এমনকি এড়িয়ে চলা হার্ডকোডযুক্ত বলে মনে হচ্ছে -noleaf
।
O(n^2)
এবং find
হার্ডলিঙ্কযুক্ত ফাইলগুলির সেটগুলির প্রতিটি সদস্যের জন্য একবার চালায় । find ... -printf '%16i %p\n' | sort -n | uniq -w 16 --all-repeated=separate
কাজ করবে, (2 ^ 63-1 এর দশমিক উপস্থাপনের জন্য 16 যথেষ্ট প্রশস্ত নয়, সুতরাং যখন আপনার এক্সএফএস ফাইল সিস্টেমটি ইনোড সংখ্যার বেশি হওয়ার পক্ষে যথেষ্ট থাকে, তখন নজর রাখুন)
একটি ফাইল সিস্টেমে সমস্ত হার্ডলিঙ্কগুলি খুঁজে পেতে স্ক্রিপ্টগুলির সাথে প্রচুর উত্তর রয়েছে। তাদের বেশিরভাগই প্রতি একাধিক -samefile
সংযুক্ত ফাইলের জন্য পুরো ফাইল সিস্টেমটি স্ক্যান করতে চালানোর মতো নির্বোধ কাজ করে । এটা পাগলামি; আপনার যা দরকার তা হ'ল ইনোড নম্বর এবং প্রিন্টের নকলগুলি বাছাই করা।
হার্ডলিঙ্কযুক্ত ফাইলগুলির সমস্ত সেট সন্ধান এবং গ্রুপ করার জন্য ফাইল সিস্টেমের উপর দিয়ে কেবল একটি পাস
find dirs -xdev \! -type d -links +1 -printf '%20D %20i %p\n' |
sort -n | uniq -w 42 --all-repeated=separate
হার্ডলিঙ্কযুক্ত ফাইলগুলির একাধিক সেট সন্ধানের জন্য অন্যান্য উত্তরগুলির তুলনায় এটি অনেক দ্রুত ।
find /foo -samefile /bar
শুধুমাত্র একটি ফাইলের জন্য দুর্দান্ত।
-xdev
: একটি ফাইল সিস্টেমে সীমাবদ্ধ। কঠোরভাবে প্রয়োজন নেই যেহেতু আমরা ইউনিকের জন্য এফএস-আইডিও প্রিন্ট করি! -type d
ডিরেক্টরিগুলি প্রত্যাখ্যান করুন: .
এবং ..
এন্ট্রিগুলির অর্থ তারা সর্বদা যুক্ত থাকে।-links +1
: লিঙ্ক গণনা কঠোরভাবে > 1
-printf ...
এফএস-আইডি, ইনোড নম্বর এবং পথ মুদ্রণ করুন। (স্থির কলাম প্রস্থে প্যাডিং সহ যা আমরা বলতে পারি uniq
))sort -n | uniq ...
শূন্য রেখার সাথে গোষ্ঠীগুলিকে পৃথক করে প্রথম 42 টি কলামগুলিতে সংখ্যা অনুসারে বাছাই করুন এবং পৃথক করুনব্যবহারের ! -type d -links +1
অর্থ হ'ল সাজ্টের ইনপুটটি ইউনিকের চূড়ান্ত আউটপুটের মতোই বড় তাই আমরা বিপুল পরিমাণ স্ট্রিং বাছাই করছি না। আপনি যদি এটিকে সাব-ডিরেক্টরিতে চালিত না করেন যা কেবলমাত্র হার্ডলিংকের একটি সেট অন্তর্ভুক্ত করে। যাইহোক, এটি অন্য পোস্ট পোস্টযুক্ত সমাধানের তুলনায় ফাইল সিস্টেমকে পুনরায় ট্র্যাভার করতে অনেক কম সিপিইউ সময় ব্যবহার করবে।
নমুনা আউটপুট:
...
2429 76732484 /home/peter/weird-filenames/test/.hiddendir/foo bar
2429 76732484 /home/peter/weird-filenames/test.orig/.hiddendir/foo bar
2430 17961006 /usr/bin/pkg-config.real
2430 17961006 /usr/bin/x86_64-pc-linux-gnu-pkg-config
2430 36646920 /usr/lib/i386-linux-gnu/dri/i915_dri.so
2430 36646920 /usr/lib/i386-linux-gnu/dri/i965_dri.so
2430 36646920 /usr/lib/i386-linux-gnu/dri/nouveau_vieux_dri.so
2430 36646920 /usr/lib/i386-linux-gnu/dri/r200_dri.so
2430 36646920 /usr/lib/i386-linux-gnu/dri/radeon_dri.so
...
করণীয় ?: আন-প্যাড সঙ্গে আউটপুট awk
বা cut
। uniq
ফিল্ড-সিলেকশন সমর্থন খুব সীমিত, তাই আমি ফলাফল আউটপুট প্যাড এবং স্থির-প্রস্থ ব্যবহার। 20chars সর্বাধিক সম্ভব ইনোড বা ডিভাইস নম্বর (2 ^ 64-1 = 18446744073709551615) জন্য যথেষ্ট প্রশস্ত। এক্সএফএস যে ডিস্কে তাদের বরাদ্দ করা হয়েছে তার ভিত্তিতে ইনোড নম্বরগুলি বেছে নেয় 0 থেকে স্বতঃস্ফূর্তভাবে নয়, তাই বড় এক্সএফএস ফাইল সিস্টেমগুলিতে> বিলিয়ন ফাইল না থাকলেও 32 বিট ইনড নম্বর থাকতে পারে। অন্যান্য ফাইল-সিস্টেমে 20-ডিজিটের ইনোড নম্বর থাকতে পারে যদিও তা বিশাল নয়।
টোডো: নথির দলকে পথ অনুসারে বাছাই করুন। এগুলিকে মাউন্ট পয়েন্ট অনুসারে বাছাই করার পরে ইনোড সংখ্যা জিনিসগুলিকে একসাথে মিশিয়ে দেয়, যদি আপনার কাছে বেশ কয়েকটি হার্ডলিঙ্ক রয়েছে এমন কয়েকটি আলাদা সাবডিয়ার থাকে। (অর্থাত্ দ্বি-গোষ্ঠীর গোষ্ঠীগুলি একসাথে যায় তবে আউটপুট তাদের মিশ্রিত করে)।
একটি ফাইনাল sort -k 3
একক রেকর্ড হিসাবে লাইনগুলির গোষ্ঠী নয়, লাইনগুলি পৃথকভাবে সাজায়। এক জোড়া নিউলাইনগুলিকে একটি এনএল বাইটে রূপান্তর করতে কোনও sort --zero-terminated -k 3
কিছুর আগে প্রসেস করা, এবং জিএনইউ ব্যবহার করা কৌশলটি করতে পারে। tr
যদিও 2-> 1 বা 1-> 2 নিদর্শন নয়, কেবল একক অক্ষরগুলিতে পরিচালনা করে। perl
এটি করে (বা পার্স এবং পার্ক বা awk মধ্যে বাছাই)। sed
কাজ করতে পারে।
%D
ফাইল সিস্টেম শনাক্তকারী (কোনও ফাইল সিস্টেম umount
এড না থাকা অবস্থায় এটি বর্তমান বুটের পক্ষে স্বতন্ত্র ), সুতরাং নিম্নলিখিতটি আরও জেনেরিক find directories.. -xdev ! -type d -links +1 -printf '%20i %20D %p\n' | sort -n | uniq -w 42 --all-repeated=separate
। এটি যতক্ষণ কাজ করে না যতক্ষণ না প্রদত্ত ডিরেক্টরিতে ফাইল সিস্টেমের স্তরে আর একটি ডিরেক্টরি থাকে না, এটি হার্ডলিঙ্ক করা যায় এমন সব কিছুতেও নজর দেয় (যেমন ডিভাইস বা সফটলিঙ্কগুলি - হ্যাঁ, সফ্টলিঙ্কগুলির লিঙ্কের সংখ্যা 1 এর চেয়ে বেশি হতে পারে)। নোট করুন dev_t
এবং ino_t
আজ 64৪ বিট দীর্ঘ। আমাদের সম্ভবত 64৪ বিট সিস্টেম থাকা পর্যন্ত এটি সম্ভবত ধরে রাখবে।
! -type d
পরিবর্তে ব্যবহারের ক্ষেত্রে দুর্দান্ত পয়েন্ট -type f
। এমনকি আমার কিছু ফাইল সংকলনের আয়োজন থেকে আমার ফাইল সিস্টেমে কিছু হার্ডলিঙ্কযুক্ত প্রতিলিপি রয়েছে। আপনার উন্নত সংস্করণ দিয়ে আমার উত্তর আপডেট করেছে (তবে আমি প্রথমে fs-id রেখেছি, তাই ফাইল সিস্টেমের মাধ্যমে কমপক্ষে গ্রুপগুলি সাজান))
এটি টোরোকোরো-মাচোর নিজস্ব উত্তর এবং স্ক্রিপ্টের কিছুটা মন্তব্য, তবে এটি অবশ্যই মন্তব্য বাক্সে খাপ খায় না।
তথ্যটি সন্ধান করার আরও সহজ উপায়গুলির সাথে আপনার স্ক্রিপ্টটি পুনরায় লিখুন এবং এইভাবে প্রক্রিয়াটির অনেক কম আবেদন।
#!/bin/sh
xPATH=$(readlink -f -- "${1}")
for xFILE in "${xPATH}"/*; do
[ -d "${xFILE}" ] && continue
[ ! -r "${xFILE}" ] && printf '"%s" is not readable.\n' "${xFILE}" 1>&2 && continue
nLINKS=$(stat -c%h "${xFILE}")
if [ ${nLINKS} -gt 1 ]; then
iNODE=$(stat -c%i "${xFILE}")
xDEVICE=$(stat -c%m "${xFILE}")
printf '\nItem: %s[%d] = %s\n' "${xDEVICE}" "${iNODE}" "${xFILE}";
find "${xDEVICE}" -inum ${iNODE} -not -path "${xFILE}" -printf ' -> %p\n' 2>/dev/null
fi
done
আমি সহজে তুলনা করার জন্য এটি যতটা সম্ভব আপনার অনুরূপ রাখার চেষ্টা করেছি।
$IFS
যদি কোনও গ্লোবই যথেষ্ট হয় তবে যাদুটিকে এড়ানো উচিত , যেহেতু এটি অহেতুকভাবে সংশ্লেষিত হয় এবং ফাইলের নামগুলিতে আসলে নতুন লাইন থাকতে পারে (তবে বাস্তবে বেশিরভাগ ক্ষেত্রে প্রথম কারণ)।
ls
যত তাড়াতাড়ি বা পরে আপনাকে কামড় দেবে আপনার পক্ষে ম্যানুয়ালি পার্সিং এবং এ জাতীয় আউটপুট যথাসম্ভব এড়ানো উচিত । উদাহরণস্বরূপ: আপনার প্রথম awk
লাইনে আপনি সমস্ত ফাইলের নাম ফাঁকা করে ফেলবেন।
printf
%s
সিনট্যাক্সের সাথে এটি এতটাই দৃ is় হওয়ায় প্রায়শই শেষ পর্যন্ত ঝামেলা বাঁচায় । এটি আপনাকে আউটপুট উপর সম্পূর্ণ নিয়ন্ত্রণ দেয় এবং পৃথক পৃথক সমস্ত সিস্টেমে সামঞ্জস্যপূর্ণ echo
।
stat
এক্ষেত্রে আপনাকে অনেক যুক্তি রক্ষা করতে পারে।
GNU find
শক্তিশালী।
তোমার head
এবং tail
আমন্ত্রণ সরাসরি ঘাঁটা করা হয়ে থাকতে পারে awk
যেমন সঙ্গে exit
কমান্ড এবং / অথবা উপর নির্বাচন NR
পরিবর্তনশীল। এটি প্রক্রিয়া আমন্ত্রণগুলি সংরক্ষণ করতে পারে, যা প্রায়শই কঠোর পরিশ্রমী স্ক্রিপ্টগুলিতে কার্য সম্পাদনকে তীব্রতর করে তোলে।
আপনার egrep
গুলি ঠিক পাশাপাশি হতে পারে grep
।
find ... -xdev -type f -links +1 -printf '%16i %p\n' | sort -n | uniq -w 16 --all-repeated=separate
। এটি খুব দ্রুত, কারণ এটি কেবলমাত্র একবারে fs ট্র্যাভার করে। একসাথে একাধিক এফএসের জন্য আপনাকে একটি এফএস আইডি সহ ইনড নম্বরগুলি উপসর্গ করাতে হবে। হতে পারেfind -exec stat... -printf ...
findhardlinks
স্ক্রিপ্টের উপর ভিত্তি করে (এটির পুনরায় নামকরণ করা হয়েছে hard-links
), এটিই আমি রিফ্যাক্টর করেছি এবং এটি কাজ করে চলেছি।
আউটপুট:
# ./hard-links /root
Item: /[10145] = /root/.profile
-> /proc/907/sched
-> /<some-where>/.profile
Item: /[10144] = /root/.tested
-> /proc/907/limits
-> /<some-where else>/.bashrc
-> /root/.testlnk
Item: /[10144] = /root/.testlnk
-> /proc/907/limits
-> /<another-place else>/.bashrc
-> /root/.tested
# cat ./hard-links
#!/bin/bash
oIFS="${IFS}"; IFS=$'\n';
xPATH="${1}";
xFILES="`ls -al ${xPATH}|egrep "^-"|awk '{print $9}'`";
for xFILE in ${xFILES[@]}; do
xITEM="${xPATH}/${xFILE}";
if [[ ! -r "${xITEM}" ]] ; then
echo "Path: '${xITEM}' is not accessible! ";
else
nLINKS=$(ls -ld "${xITEM}" | awk '{print $2}')
if [ ${nLINKS} -gt 1 ]; then
iNODE=$(ls -id "${xITEM}" | awk '{print $1}' | head -1l)
xDEVICE=$(df "${xITEM}" | tail -1l | awk '{print $6}')
echo -e "\nItem: ${xDEVICE}[$iNODE] = ${xITEM}";
find ${xDEVICE} -inum ${iNODE} 2>/dev/null|egrep -v "${xITEM}"|sed 's/^/ -> /';
fi
fi
done
IFS="${oIFS}"; echo "";
একটি জিইউআই সমাধান আপনার প্রশ্নের সাথে সত্যই কাছাকাছি আসে:
আপনি "এলএস" থেকে প্রকৃত হার্ডলিঙ্কযুক্ত ফাইলগুলি তালিকাবদ্ধ করতে পারবেন না কারণ পূর্ববর্তী মন্তব্যকারীরা উল্লেখ করেছেন যে "নাম" ফাইলটি একই তথ্যের নিছক উপমা। তবে, আসলে একটি জিইউআই সরঞ্জাম রয়েছে যা আপনি যা চান তার খুব কাছে চলে যায় যা লিনাক্সের অধীনে একই তথ্যের (হার্ডলিঙ্কগুলি) নির্দেশিত ফাইল নামের একটি পাথ তালিকা প্রদর্শন করা হয়, এটিকে এফএসলিন্ট বলা হয়। আপনি যে বিকল্পটি চান সেটি হ'ল "নাম সংঘর্ষ" -> অনুসন্ধান (এক্সএক্সএক্স) - "চেকবক্স $ पथ" নির্বাচন করুন এবং শীর্ষ-মধ্যের দিকে "জন্য ..." এর পরে ড্রপ-ডাউন বক্স থেকে "এলিয়াস" নির্বাচন করুন।
এফএসলিন্ট খুব খারাপভাবে নথিভুক্ত হয়েছে তবে আমি খুঁজে পেয়েছি যে "পুনরাবৃত্তি"? এবং পূর্বোক্ত বিকল্পগুলি, পাথ এবং নামগুলির সাথে হার্ডলিঙ্কযুক্ত ডেটার একটি তালিকা যা একই ডেটাতে "পয়েন্ট" প্রোগ্রাম অনুসন্ধানের পরে তৈরি করা হয়।
আপনি ls
একটি 'ওরফে' ব্যবহার করে হার্ডলিঙ্কগুলি হাইলাইট করার জন্য কনফিগার করতে পারেন , তবে হার্ডলিংকের 'উত্স' দেখানোর কোনও উপায় নেই বলে আগেই বলা হয়েছে যার কারণে আমি এটিতে .hardlink
সহায়তা করার জন্য যুক্ত করি।
নিম্নলিখিত কোথাও আপনার যোগ করুন .bashrc
alias ll='LC_COLLATE=C LS_COLORS="$LS_COLORS:mh=1;37" ls -lA --si --group-directories-first'
link(2)
সিস্টেম কল করার পরে , কোনটি আসল এবং কোনওটি সেই লিঙ্কটির কোনও ধারণা নেই। এই কারণেই, উত্তরগুলি হিসাবে উল্লেখ করা হয়েছে, সমস্ত লিঙ্কগুলি সন্ধানের একমাত্র উপায়find / -samefile /a/A
। কারণ একটি ইনোডের জন্য একটি ডিরেক্টরি এন্ট্রি একই ইনোডের জন্য অন্যান্য ডিরেক্টরি এন্ট্রিগুলিকে "সম্পর্কে" জানে না। তারা যা করে তা হ'ল ইনোডকে পুনরায় গণনা করা হয় যাতে এটির শেষ নামটি যখন মুছে ফেলা যায়unlink(2)ed
। (এটিls
আউটপুটে "লিঙ্ক কাউন্ট" )।