আমি কীভাবে এক ডিরেক্টরিতে থাকা প্রতিটি ফাইলকে অন্য ডিরেক্টরিতে সিলেট করব?


15

যদি আমি একটি ডিরেক্টরি আছে /fooএটি একটি কয়েক ফাইলগুলির সাথে, কিভাবে আমি প্রতিটি প্রবেশ সিমবলিক লিঙ্ক না /fooবা /bar/?

উদাহরণস্বরূপ, যদি আপনার /fooফাইলের নামে আছে a, bএবং c, আমার তিনটি symlinks তৈরি করতে চান:

  • /bar/a -> /foo/a
  • /bar/b -> /foo/b
  • /bar/c -> /foo/c

আপনি কি নিশ্চিত যে ফুতে বার বার সিমলিংক করতে চান না?
ধনী ব্র্যাডশো

এর আসল প্রয়োগটি হ'ল আমি একটি প্রোগ্রাম ইনস্টল করেছি এবং তার এক্সিকিউটেবলগুলিকে আমার $ PATH এর কোনও স্ট্যান্ডার্ড ফোল্ডারে সরানো চাই না বরং ইনস্টলডটিকে পাথের সাথে যুক্ত করব।
স্টিভেন

দেখে মনে হচ্ছে এটির সাথে এটি কনফিগার করা ভাল ধারণা --prefix=
হ্যালো 71

উত্তর:


18

আপনি (গনুহ) ব্যবহার করতে পারেন cpসঙ্গে --symbolic-linkবিকল্প:

prompt$ mkdir foo
prompt$ cd foo
prompt$ touch a b c
prompt$ mkdir ../bar
prompt$ cd ../bar
prompt$ cp --symbolic-link ../foo/* .
prompt$ ls -l
total 0
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 a -> ../foo/a
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 b -> ../foo/b
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 c -> ../foo/c
prompt$

এটি ঠিক সমাধান বলে মনে হচ্ছে। অসাধারণ!
স্টিভেন

এটি খুব নিখুঁত।
noraj

এটি ডিরেক্টরিগুলির জন্যও প্রয়োগ করার কোনও উপায়? আমি যখন এটি চালাচ্ছি আমি সতর্কতা পেয়েছি "সিপি: বাদ দেওয়া ডিরেক্টরি '। /বাজ'"
সলডাউ

15

একবার চেষ্টা করে দেখুন:

ln -s /foo/* /bar

উত্স ডিরেক্টরি, যেমন প্রশ্নে উল্লেখ করা হয়েছে, তা /foo। নোট করুন যে এটি অবশ্যই সম্পূর্ণ নির্দিষ্ট করা উচিত (যেমন রুট ডিরেক্টরি থেকে শুরু), সুতরাং অন্যান্য উদাহরণগুলি এর মতো দেখাবে:

ln -s /some/dir/with/baz/* destdir
ln -s /dir/to/link/from/* /dir/to/link/to
ln -s $PWD/stuff/* more/stuff

এটি কি কাজ করে?
ctrlc- রুট

@ root.ctrlc: আপনাকে উত্সের পুরো পথটি নির্দিষ্ট করতে হবে (যা /আমার মূল উত্তরে রয়েছে)। আমি একটি ব্যাখ্যা যোগ করব।
পরবর্তী বিজ্ঞপ্তি না হওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

আমি মনে করি আপনি যদি কেবল একটি কমান্ডের সাহায্যে সমস্ত কিছুকে সিমলিংক হিসাবে অনুলিপি করতে চান তবে আপনাকে @ hlovdal উত্তর এর মতো সিপি-এস ব্যবহার করতে হবে, cp -rs /var/www/folder/ .প্রতিটি সাবফোল্ডার ফাইলকে সিমিলিংক হিসাবে ln -s /var/www/folder/ .অনুলিপি করতে হবে, আমার কম্পিউটারে সাবফোল্ডার ফাইলগুলি কে নকল করেছেন এমন নয় ।
ব্যাপটেক্স

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.