সিমলিংক তৈরি করুন - যদি বিদ্যমান থাকে তবে ওভাররাইট করুন


54

আমি ডেটা নামিয়ে আনতে /path/to/data/folder/month/date/hour/minute/fileএবং এটিতে সিমিলিং করতে চাই /path/to/recent/fileএবং প্রতিবার কোনও ফাইল তৈরি হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে করতে চাই।

ধরে নিচ্ছি আমি /path/to/recent/fileউপস্থিত থাকলে সময়ের আগে জানতে পারব না , আমি কীভাবে এটি তৈরি করতে (এটি বিদ্যমান না থাকলে) বা এটির (যদি এটি বিদ্যমান থাকে) প্রতিস্থাপন সম্পর্কে যেতে পারি? আমি নিশ্চিত যে আমি কেবল এটি উপস্থিত কিনা তা পরীক্ষা করে দেখতে পারি এবং তারপরে একটি মুছুন, সিমিলিংক করতে পারি, তবে আমি ভাবছি যে কোনও সাধারণ কমান্ড আছে যা আমি এক ধাপে যা চাই তা করব।


যদি গন্তব্যটি বিদ্যমান থাকে, তবে এটি একটি সিমিলিংক না হয়, আপনি কী চান / ঘটবে বলে আশা করছেন?
টবি স্পিড

উত্তর:


34

ম্যানুয়ালটি পড়ুন দয়া করে ।

ln -sfn /new/target /path/to/symlink

l man ln

-n, --no-dereferences
যদি কোনও ডিরেক্টরিতে প্রতীকী লিঙ্ক হয় তবে LINK_NAME কে একটি সাধারণ ফাইল হিসাবে বিবেচনা করে


1
কেন এটি সঠিক উত্তর?
মিচিফ

1
@ মিছিফ যদি পতাকা /path/to/symlinkছাড়াই ইতোমধ্যে কোনও ডিরেক্টরিতে একটি সিমলিংক হয়ে থাকে তবে প্রতিস্থাপনের পরিবর্তে -nআপনি এই সিমিলিংকটি তৈরি করতে পারবেন/path/to/symlink/target/path/to/symlink
Flimm

মনে রাখবেন যে ম্যাকোজে, এটি এখনও কিছু ক্ষেত্রে কাজ করে না, উদাহরণস্বরূপ, যখন /path/to/symlinkউপস্থিত থাকে এবং একটি ডিরেক্টরি হয়, তবে একটি সিমলিংক নয়। আমি মনে করি এটির চারপাশে কাজ করার একমাত্র উপায় হ'ল rm -rfআগে চালানো ।
ফ্লিম

78

এটি lnএর -fবিকল্পের উদ্দেশ্য : এটি লিঙ্কটি তৈরি করার আগে বিদ্যমান গন্তব্য ফাইলগুলি সরিয়ে দেয়।

ln -sf /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file

সিমবলিক লিঙ্ক তৈরি করবে /path/to/recent/fileনির্দেশিত /path/to/data/folder/month/date/hour/minute/fileপ্রয়োজনে (এবং কিছুই ইতিমধ্যে সেখানে যদি উপস্থিত থাকে সূক্ষ্ম কাজ করা) একটি ফাইলে কোনো বিদ্যমান ফাইল বা সিমবলিক লিঙ্ক প্রতিস্থাপন।

যদি কোনও ডিরেক্টরি, বা কোনও ডিরেক্টরিতে সিমলিংক, লক্ষ্য নামের সাথে ইতিমধ্যে উপস্থিত থাকে তবে এর ভিতরে সিমলিংক তৈরি করা হবে (যাতে আপনি /path/to/recent/file/fileউপরের উদাহরণটি দিয়ে শেষ করতে চান )। -nবিকল্প, কিছু সংস্করণের মধ্যে উপলব্ধ ln, আপনার জন্য ডিরেক্টরিগুলিতেই symlinks যত্ন নিতে হবে, তাদের প্রয়োজনীয় হিসাবে প্রতিস্থাপন:

ln -sfn /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file

পসিক্সln নির্দিষ্ট করে না -nযাতে আপনি সাধারণত এটির উপর নির্ভর করতে পারবেন না। এর বেশিরভাগ lnআচরণ বাস্তবায়ন-সংজ্ঞায়িত তাই আপনাকে আপনার ব্যবহার করা সিস্টেমের স্পেসিফিকেশনগুলি পরীক্ষা করতে হবে। আপনি যদি জিএনইউln ব্যবহার করছেন তবে ডিরেক্টরিগুলির উপস্থিতিতে এটির আচরণটি সম্পূর্ণ অনুমানযোগ্য করতে আপনি বিকল্পগুলি -tএবং -Tবিকল্পগুলিও ব্যবহার করতে পারেন ( যেমন একই নামের সাথে বিদ্যমান ডিরেক্টরিতে লিঙ্ক তৈরি করার পরিবর্তে ব্যর্থ হন)।

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