লিনাক্স: সমস্ত ফাইলকে এক থেকে অন্য ডিরেক্টরিতে সংযুক্ত করুন [বন্ধ]


123

আমি লিঙ্ক (চান ln -s) সমস্ত ফাইল আছে /mnt/usr/lib/মধ্যে/usr/lib/

এখানে প্রচুর ফাইল রয়েছে, কীভাবে তা দ্রুত করা যায়? :)


"লট" কতগুলি ফাইল এবং আপনি কত দ্রুত "দ্রুত" বলে মনে করেন?
এরিক স্মিথ

4
এটি 50:50 এটি "সার্ভারফ্রোল্ট" বা "সুপারইউজার" ফিট করবে কিনা, তবে এটি প্রোগ্রামিং নয়, তাই স্ট্যাকওভারফ্লোতে নয়।
মার্ক গ্র্যাভেল

উত্তর:


202
ln -s /mnt/usr/lib/* /usr/lib/

আমার ধারণা, যদিও এটি সুপারসুয়ারের অন্তর্গত।


6
এটিতে লুকানো ফাইলগুলি অন্তর্ভুক্ত নয় এবং এটি সম্পূর্ণ ডিরেক্টরিকে লিঙ্ক করে। এর মধ্যে যদি না হয় আপনি যা চান তবে আমার উত্তরটি দেখুন। অন্যথায়, এটি সবচেয়ে সংক্ষিপ্ততম উপায়।
ক্যাসাবেল

তুমি ঠিক বলছো. তবে গ্রন্থাগারগুলি সাধারণত লুকানো থাকে না। যে কোনও ক্ষেত্রে ডটফাইলগুলি জড়িত আপনার সমাধানটি আরও কার্যকর হয়।

1
এটি অন্য ফোল্ডারে স্থায়ীভাবে নির্দেশ করবে?
এনএমকিউপ্পি

@ ইউপিপি আমার ধারণা, এটি কেবল ডিরেক্টরিতে প্রতিটি ফাইলকে হার্ডলিঙ্ক তৈরি করে। (এটি আমি আজ যা চেয়েছিলাম তাই +1: ডি)
নামটি

2
@ সার্জবার্স এটি প্রতীকী লিঙ্কগুলি তৈরি করে (হার্ড লিঙ্কগুলি ভিন্ন)।
jsejcksn

90

গনুহ cpকপি পরিবর্তে symlinks তৈরি করতে একটি বিকল্প আছে।

cp -rs /mnt/usr/lib /usr/

নোট করুন এটি একটি জিএনইউ এক্সটেনশন যা পসিক্সেcp পাওয়া যায় নি ।


4
প্রতীকী লিঙ্কটি এইভাবে তৈরি করতে আপনার বর্তমান ডিরেক্টরিটি / usr / হওয়া উচিত
Soul_man

@caf যদি গন্তব্য বিদ্যমান ফোল্ডারটি থাকে তবে লিব ফোল্ডারটি / usr / ফোল্ডারের ভিতরে তৈরি করা হয়
তামিল সেলওয়ান সি

2
ভাল উত্তর. -S এর পরিবর্তে -l দিয়ে হার্ডলিঙ্ক তৈরি করতেও ব্যবহার করা যেতে পারে।
ফ্যাক্স


15

পোস্ট করা সমাধানগুলি কোনও লুকানো ফাইলকে লিঙ্ক করবে না। তাদের অন্তর্ভুক্ত করতে, এটি চেষ্টা করুন:

cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done

আপনি যদি পুনরাবৃত্তভাবে ডিরেক্টরিগুলি তৈরি করতে চান এবং কেবল ফাইলগুলি লিঙ্ক করতে চান (যাতে আপনি যদি কোনও ডিরেক্টরিতে একটি ফাইল তৈরি করেন তবে এটি সত্যই /usr/libনয় /mnt/usr/lib) আপনি এটি করতে পারেন:

cd /usr/lib
find /mnt/usr/lib -mindepth 1 -depth -type d -printf "%P\n" | while read dir; do mkdir -p "$dir"; done
find /mnt/usr/lib -type f -printf "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done

2
আমি বিশ্বাস করি যে এটি লুকানো ফাইলগুলিতে ওয়াইল্ডকার্ডের উপায় হিসাবেও কাজ করা উচিত, যদি আপনি বাশকে গ্লোববিং চালু করে থাকেন। এটি বিন্দু দিয়ে শুরু হওয়া সমস্ত কিছুর সাথে মেলে, তার পরে কিছুই বা অন্য বিন্দু ছাড়া অন্য কিছু (যেমন এটি বাদ দেয় ./এবং ../):ln -s /mnt/usr/lib/.!(|.)* /usr/lib
ক্যাসকেবেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.