ডিরেক্টরিতে একটি সিমিলিংক সরান


1085

আমার একটি গুরুত্বপূর্ণ ডিরেক্টরিতে একটি সিমিলিংক রয়েছে। ডিরেক্টরিটি পিছনে রেখে আমি সেই সিমিলিংক থেকে মুক্তি পেতে চাই।

আমি চেষ্টা rmএবং ফিরে পেতে rm: cannot remove 'foo'
আমি চেষ্টা করে rmdirফিরে rmdir: failed to remove 'foo': Directory not empty
এসেছি তারপরে আমি অগ্রগতি করেছি rm -f, rm -rfএবংsudo rm -rf

তারপরে আমি আমার ব্যাক-আপগুলি খুঁজতে গিয়েছিলাম।

স্নানের জল দিয়ে বাচ্চাকে ফেলে দিয়ে সিমলিংক থেকে মুক্তি পাওয়ার কী উপায় আছে?


74
লিনাক্স সম্পর্কিত প্রশ্ন জিজ্ঞাসা করতে ভুল কি? গতবার যখন আমি পরীক্ষা করেছিলাম, স্ট্যাক ওভারফ্লো অস-নির্দিষ্ট ছিল না
জেরেমি কেন্ট্রেল

6
এই প্রশ্নটি কি সুপার ব্যবহারকারী বা লিনাক্স-সম্পর্কিত স্ট্যাক এক্সচেঞ্জের জন্য আরও উপযুক্ত উপযুক্ত নয়?
mwfearnley

45
@ এমডাব্লুফের্নলি এটি হবে তবে তারিখটি পরীক্ষা করুন। সুপার ব্যবহারকারী তখনও কোনও জিনিস ছিল না। এটি পোর্ট করা হয়েছে, তাই এটিও আছে। এটি এখনও কেন এখানে নেই তা নিশ্চিত নয় তবে এটি আমার সর্বোচ্চ স্কোরিং প্রশ্ন এবং আমি মুখে উপহারের কর্মফল দেখছি না।
ম্যাথিউ স্কাউটেন

16
টিআইপি: rm -r link/ লক্ষ্যবস্তুতে সামগ্রী
মোছা করে

31
Then I went to find my back-ups- এটাই আমাকে দুর্বল করে তুলেছে।
ফ্রেমম্যান 1

উত্তর:


1308
# this works:
rm foo
# versus this, which doesn't:
rm foo/

মূলত, আপনাকে এটি কোনও ফাইল মুছে ফেলার জন্য বলতে হবে , কোনও ডিরেক্টরি মুছবে না । আমি বিশ্বাস করি যে সি লাইব্রেরি প্রত্যেকের সাথে যেভাবে আচরণ করে তার মধ্যে পার্থক্যের কারণে পার্থক্য rmএবং rmdirবিদ্যমান রয়েছে।

যে কোনও হারে, প্রথমটি কাজ করা উচিত, এবং দ্বিতীয়টির foo ডিরেক্টরি হিসাবে অভিযোগ করা উচিত।

যদি এটি উপরের মতো কাজ করে না, তবে আপনার অনুমতিগুলি পরীক্ষা করুন। ফাইলগুলি সরানোর জন্য আপনার ধারণ ਵਾਲੀ ডিরেক্টরিতে লেখার অনুমতি প্রয়োজন।


121
অই হ্যাঁ. এটা বোধগম্য. আমি কখনই foo টাইপ করিনি, আমি f <tab> টাইপ করেছিলাম এবং আমার জন্য বাশ ভর্তি করে দিয়েছি।
ম্যাথু স্কাউটেন

6
এটি সবসময় কাজ করে না। rm -rf folderNameসিমলিংকটি সরাতে মাঝে মধ্যে আপনাকে চালানোর প্রয়োজন হয় (পিছনে / ছাড়াই)। উদাহরণস্বরূপ, অ্যামাজন লিনাক্স নির্দিষ্ট পরিস্থিতিতে এইরকম আচরণ করে।
ব্র্যান্ডস্ক্রিপ্ট

18
@ r3mus: -rআপনি যতক্ষণ না এর ভিতরে সমস্ত কিছু হারাতে চান তা না করে কখনও কোনও সিমিলিংক ব্যবহার করবেন না। -fফাইল অনুমতিগুলি ওভাররাইড করা ছাড়া অন্যথায় প্রয়োজন হয় না।
ম্যাথু শার্লে

27
বিশেষত, একে'র 'লিঙ্ক' অপারেশনের unlinkকোনও সম্পর্ক নেই ln। নামটি unlinkফাইল সিস্টেমের ফাইল টেবিল থেকে কোনও ফাইলকে লিঙ্কযুক্ত / সরানোর প্রক্রিয়াটিকে বোঝায় যাতে সামগ্রীগুলি তাদের কোনও রেফারেন্স থেকে আলাদা হয়ে যায় - সেগুলি লিঙ্কমুক্ত থাকে। এটি একটি বিভ্রান্তিমূলক নাম যা বিশেষত লিঙ্কগুলি এবং সিমলিংকের ক্ষেত্রে প্রয়োগ করার সময় সম্পূর্ণ বিভ্রান্তিমূলক। unlinkসিমলিংকের সাথে কাজ করবে কারণ এটি যে কোনও ফাইলের সাথে নির্বিশেষে কাজ করে ।
ম্যাথু Scharley

4
আপনি যদি কখনই মূর্খ কিছু করার বিষয়ে উদ্বিগ্ন হন alias rm="rm -i"তবে আমার মনে হয় কেবল কিছু করার চেয়ে বেশি আড়াল বাঁচিয়েছেন।
ম্যাথু শিারলে

832

"লিঙ্কমুক্তের" কমান্ড ব্যবহার করতে হবে এবং নিশ্চিত করুন যে না শেষে / আছে

$ unlink mySymLink

লিঙ্কমুক্ত () ফাইল সিস্টেম থেকে একটি নাম মুছে দেয়। যদি সেই নামটি কোনও ফাইলের শেষ লিঙ্ক হয় এবং কোনও প্রক্রিয়া ফাইল না থাকে তবে ফাইলটি মুছে ফেলা হয় এবং যে স্থানটি এটি ব্যবহার করা হত তা পুনরায় ব্যবহারের জন্য উপলব্ধ করা হয়। নামটি যদি কোনও ফাইলের শেষ লিঙ্ক ছিল তবে কোনও প্রক্রিয়া এখনও ফাইলটি খোলে থাকলে ফাইলটি শেষ ফাইল বর্ণনাকারী বন্ধ না হওয়া অবধি বিদ্যমান থাকবে in

আমি মনে করি এটি সঠিকভাবে পড়লে সমস্যা হতে পারে।

প্রতীকী লিঙ্কের নাম উল্লেখ করা হলে লিঙ্কটি সরানো হবে is

যদি সকেটের নাম উল্লেখ করা হয়, ফিফো বা ডিভাইসটির জন্য নামটি সরিয়ে ফেলা হয় তবে যেসব প্রক্রিয়াতে অবজেক্টটি খোলা থাকে সেগুলি ব্যবহার করা চালিয়ে যেতে পারে।

https://linux.die.net/man/2/unlink


33
@ ওমারআবিড "আরএম ফু /" সংস্করণ আমাকে ভয় দেখায়। এটি অনেকটা নিরাপদ বলে মনে হচ্ছে :)
জো ফিলিপস

9
উবুন্টু, আমি সাথে পরীক্ষিত ~/c/a/file, /c/b/সঙ্গে ln -s ~/c/a ~/c/b/। ইন ~/c/b/, rm a/কাজ করে না, rm -rf a/কেবল আসলটি খালি করে aunlink aনিখুঁতভাবে কাজ করে, এবং unlink a/কিছুই করে না।
ব্র্যাডি ট্রেনার

3
ওএস এক্স ১০.১০ unlinkএ কেবলমাত্র একটি উপাধি rmrmআপনার ডিরেক্টরি কাঠামোর যে কোনও অংশের সাথে ডিল করার সময় যথাযথ শৃঙ্খলা ব্যবহার করা উচিত তা দেখানো যায় ।
ডগ শক্তি

1
স্ক্রিপ্টিংয়ে rm -fকোনও লিঙ্ক উপস্থিত রয়েছে কিনা তা নিঃশব্দে মুছে ফেলবে, যেখানে unlinkলিঙ্কটি উপস্থিত না থাকলে অভিযোগ করবে। লিঙ্কমুক্ত করার জন্য কোনও '-f' বিকল্প নেই, স্ক্রিপ্টটিকে আরও জটিল করে তুলেছে।
চমত্কার লিনাক্স ব্যবহারকারী

22
unlinkনিয়মিত ফাইলগুলি মুছতে পারে। সিমলিংকের তুলনায় এটি কম বৈশিষ্ট্যযুক্ত rmএবং নির্দিষ্ট নয়। পতাকা rmছাড়া ডিরেক্টরিগুলি মুছবে না -r। সুতরাং আমি আরএমকে অগ্রাধিকার দেওয়ার পরামর্শ দিচ্ছি, এতে ভার্বোস এবং ইন্টারেক্টিভের জন্য পতাকা রয়েছে; পাশাপাশি অর্থবহ সতর্কতা এবং ত্রুটি বার্তা।
থারস্মমনার

18

আরএম এর প্রতীকী লিঙ্কটি সরিয়ে ফেলা উচিত।

skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$ 

17

ব্যবহার করুন rm symlinknameতবে শেষে একটি ফরোয়ার্ড স্ল্যাশ অন্তর্ভুক্ত করবেন না (ব্যবহার করবেন না rm symlinkname/:)। এরপরে আপনাকে জিজ্ঞাসা করা হবে যে আপনি yহ্যাঁ উত্তর দেওয়ার জন্য সিমলিংকটি মুছে ফেলতে চান কিনা ।


63
আপনি ভুল নন, তবে সঠিক উত্তরটি ইতিমধ্যে এখানে এবং স্বীকৃত (4 বছর আগে!)। কেন বিরক্ত হও?
ম্যাথু স্কাউটেন

1
"একটি সিমলিংক সরান" অনুসন্ধান করার সময় গুগলের বৈশিষ্ট্যযুক্ত স্নিপেট হিসাবে এটি ছিল। সম্ভবত এটি এর সংকোচনের পছন্দ করেছে, নিশ্চিত নয় যে এটির হুরিস্টিকস কীভাবে কাজ করে। যাইহোক, আমি যখন আমার কমান্ড লাইনের দিকে ফিরে তাকালাম তখনই আমি তত্ক্ষণাত্ একটি ফেসপালটি করেছি :-)
র্যান্ডাল

12

এটিকে ধরে নেওয়া আসলে এটি একটি সিমিলিংক,

$ rm -d symlink

এটি এটিকে বের করা উচিত, তবে যেহেতু এটি আমরা যে সুপ্ত কোডটি সক্ষম করতে পারি না এটি অন্য একটি মামলার উদ্দেশ্যে করা হয়েছিল যা এখন আর বিদ্যমান নেই তবে এখানে সঠিক কাজটি করার জন্য ঘটে।


7

আরএম যদি কোনও সিমলিংক অপসারণ করতে না পারে তবে সম্ভবত আপনাকে সেই ডিরেক্টরিতে থাকা সিমিলিংকটির অনুমতিগুলি দেখতে হবে। ডিরেক্টরি এন্ট্রিগুলি অপসারণ করতে আপনার ধারণক্ষম ডিরেক্টরিতে লেখার অনুমতি প্রয়োজন।


4

আপনার সেটআপটিকে ধরে রাখার মতো কিছু মনে করা:, ln -s /mnt/bar ~/fooতাহলে আপনার rm fooকোনও সমস্যা ছাড়াই এটি করতে সক্ষম হওয়া উচিত । যদি আপনি না করতে পারেন তবে নিশ্চিত হয়ে নিন যে আপনি এর মালিক fooএবং ফাইলটি লেখার / সম্পাদন করার অনুমতি রয়েছে। মুছে ফেলা fooস্পর্শ করবে না bar, যদি না আপনি এটি পুনরাবৃত্তি করে না।


2

CentOS- এ, কেবল চালান rm linknameএবং এটি "প্রতীকী লিঙ্কটি সরাতে চান?" টাইপ করুন Yএবং Enter, লিঙ্কটি চলে যাবে এবং ডিরেক্টরিটি নিরাপদ থাকবে।


2

আমার উইন্ডোজ সার্ভারে চলমান MinGW (আসলে গিট ব্যাশ) নিয়ে এই সমস্যা হয়েছিল। উপরের পরামর্শগুলির কোনওটিই কাজ করে বলে মনে হয়নি। শেষ পর্যন্ত ডিরেক্টরিটির একটি অনুলিপি তৈরি করে উইন্ডোজ এক্সপ্লোরারে নরম লিঙ্কটি মুছে ফেলা হয়েছে এবং তারপরে রিসাইকেল বিনটিতে আইটেমটি মুছে ফেলা হয়েছে। এটি ফাইলগুলি মুছে ফেলার মতো শোরগোল করেছে তবে তা করেনি। যদিও ব্যাকআপ করুন!


3
"এটি ফাইলগুলি মোছার মতো শোরগোল করেছে ..." - বাহ!
স্টেরেক্স

LMFAO। "এটি ফাইলগুলি মোছার মতো শোরগোল করেছে ..."
শিবাম ঝা

মনে আছে ফ্লপি ডিস্ক!
কিথ হুইটিংহাম

উপরের কোনওটিই আমার পক্ষে কাজ করেনি: এডিডিক @ এডিডিইক-অক্ষাংশ-ই 40৪৪০: ~ $ এলএস ডেস্কটপ ডাউনলোডগুলি ড্রপবক্স-উইন্ডোজ সংগীত পাবলিক ভিডিওগুলি ডকুমেন্টস ড্রপবক্স উদাহরণ.ডেস্কটপ পিকচার টেম্পলেট 'ভিএমওয়্যার ভিএমএক্স ফাইলগুলি'
এডিডিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.