উত্তর:
আপনার সাথে সেটি মুছতে পারেন rmযথারীতি: rm NameOfFile। মনে রাখবেন যে হার্ড লিঙ্কগুলির সাথে "মূল ফাইল" এবং "ফাইলটির লিঙ্ক" এর মধ্যে কোনও পার্থক্য নেই: আপনার কাছে একই ফাইলের দুটি নাম রয়েছে এবং কেবল একটির নাম মুছলে অন্যটি মুছবে না।
sudoযে কমান্ডটি দিয়েছিলেন (সুপার-ইউজার হিসাবে) এটি তৈরি করে থাকলে আপনার এটির মূল (ব্যবহার ) হিসাবে rm করা দরকার ।
অপ্রয়োজনীয় হার্ড লিঙ্কগুলি সরানোর জন্য আমার কাছে এই স্ক্রিপ্ট রয়েছে। তবে যত্ন নিন - এটি বেশ বিপজ্জনক।
#!/bin/bash
clear
echo Reduce redundant hardlinks in the current folder
echo ------------------------------------------------
echo
echo " $(basename $0) [-R]"
echo " -R means recursive"
echo
read -p "You can break by pressing Ctrl+C"
echo
ask=1
if [ a$1 == "a-R" ]; then recursive=" -R "; fi
for i in $(ls -i $recursive | awk '{print $1}' | uniq --repeated | sort);
do
echo "Inode with multiple hardlinked files: $i"
first=1
for foundfile in $(find . -xdev -inum $i);
do
if [ $first == 1 ]; then
echo " preserving the first file: $foundfile"
first=0
else
echo " deleting the redundant file: $foundfile"
#rm $foundfile
fi
done
if [ $ask == 1 ]; then
read -p "Delete all the rest of redundant hardlinks without asking? y/N "
if [ a${REPLY,,} == "ay" ]; then ask=0; fi
fi
# read -p "pause for sure"
echo
done
echo "All redundant hardlins are removed."
echo
আসলে rmকাজ করে না:
[user@localhost Products]$ rm AZP/
rm: cannot remove `AZP/': Is a directory
[user@localhost Products]$ rm -r AZP/
rm: cannot remove `AZP': Not a directory
কি কাজ করে unlink AZP।
AZP/ডিরেক্টরি মনে হচ্ছে, পুনরাবৃত্ত পতাকা ছাড়া আরএম ডিরেক্টরিতে কাজ করে না। কোরুতেলস ডক্স অনুসারেও। >>> বেশিরভাগ সিস্টেম ডিরেক্টরিতে একটি হার্ড লিঙ্ক তৈরি নিষিদ্ধ; এটি যেখানে অনুমোদিত, কেবলমাত্র সুপার-ব্যবহারকারী এটি করতে পারে (এবং সাবধানতার সাথে, যেহেতু একটি চক্র তৈরি করা অন্যান্য অন্যান্য ইউটিলিটিগুলিতে সমস্যা সৃষ্টি করবে)।
AZPকোনও ডিরেক্টরিতে প্রতীকী লিঙ্ক হয় (বা অন্য কোনও কিছু) rm AZP/কাজ করবে না কারণ rmএটি একটি ডিরেক্টরি বলে মনে করে ( /শেষে রয়েছে)। তবে rm AZPঠিক কাজ করবে। -1
আপনি যদি কেবলমাত্র লিঙ্কটি সরাতে এবং এইভাবে মূল ফাইলটি রাখতে চান তবে আপনাকে আনলিংক ব্যবহার করতে হবে।
unlink(1)? এটি unlink(2)সিস্টেম কলের চারপাশে একটি অগভীর আবরণ , একই সিস্টেম কল যা rm(1)ডিরেক্টরি নয় এমন সমস্ত ফাইলের জন্য ব্যবহার করে।
unlinkএর নাম সত্ত্বেও, হার্ডলিঙ্কযুক্ত দুটি পৃথক ফাইলে আলাদা করা হবে না, তবে "লিঙ্কযুক্ত" ডিরেক্টরি এন্ট্রি (তবে ফাইল / বিষয়বস্তু / ইনোড নয়, লিংক সংখ্যাটি 1 অবধি) 1 অপসারণ করবে।
ln -n /path/to/fileনামযুক্ত একটি ফাইল তৈরি করেfileএবং এর জন্য সংক্ষিপ্তকরণln --no-dereference /path/to/file। এর অর্থ হ'ল যদি/path/to/fileএকটি প্রতীকী লিঙ্ক হয় তবে সদ্য নির্মিত হার্ডলিঙ্কটি সিমলিংকের টার্গেটের পরিবর্তে সেই সিমিলিংকের দিকে নির্দেশ করবে।