কোথায় renameকমান্ড থেকে এসেছে?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
prename
কোথায় renameকমান্ড থেকে এসেছে?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
prename
উত্তর:
আশ্চর্যের বিষয়, এটি renameপ্যাকেজ থেকে এসেছে ।
pilot6@Pilot6:~$ ls -l /usr/bin/rename
lrwxrwxrwx 1 root root 24 окт 17 2013 /usr/bin/rename -> /etc/alternatives/rename
pilot6@Pilot6:~$ ls -l /etc/alternatives/rename
lrwxrwxrwx 1 root root 20 апр 29 2016 /etc/alternatives/rename -> /usr/bin/file-rename
pilot6@Pilot6:~$ dpkg -S /usr/bin/file-rename
rename: /usr/bin/file-rename
dpkg -Sসিমলিংক অনুসরণ করে না? বাগ বা ফিচার?
dpkgকাজ নয়। dpkgকেবল ইনস্টলড প্যাকেজগুলির সাথেই কাজ করে। ব্যবহার করুন update-alternatives --query rename , এটি আপনাকে সমাধান করা লিঙ্কের পথটি দেখাবে
dpkg/ dpkg-queryএই তথ্যটি অফার করা সহজ হবে । যাইহোক, আমি মনে করি না dpkg -Sউচিত চুপটি symlinks ডি-রেফারেন্স পর্যন্ত এটি একটি প্যাকেজ ফাইল খুঁজে বের করে। dpkg -S fooকমান্ডটি fooসন্ধান করার কথা নয় , এটি প্যাকেজটি আবিষ্কার করে যা ফাইলটি ইনস্টল করে fooএবং কোনও ফাইলের পরম পথের সাথে অনুরোধ করা হলে এটি সবচেয়ে কার্যকর is dpkg -S /usr/bin/renameকোনও প্যাকেজ কেন সেই সিমিলিংক সরবরাহ করে না তা ব্যাখ্যা করা হলে এটি দুর্দান্ত লাগবে তবে আমি মনে করি এটি এখনও সত্য বলা উচিত যা কোনও প্যাকেজ করে না।
আপনি সম্ভবত দেখতে পাবেন যে এটি একটি প্রতীকী লিঙ্ক যা update-alternativesপ্রক্রিয়া দ্বারা পরিচালিত হয় :
$ ls -l $(which rename)
lrwxrwxrwx 1 root root 24 Jun 29 2016 /usr/bin/rename -> /etc/alternatives/rename
আপনি ব্যবহার করে alচ্ছিক বাস্তবায়ন দেখতে পাবেন
$ update-alternatives --list rename
/usr/bin/file-rename
/usr/bin/prename
এবং ব্যবহার করে বাস্তবায়ন মধ্যে নির্বাচন করতে পারেন
update-alternatives --config rename
এফডাব্লুআইডাব্লিকেশন প্যাকেজ file-renameদ্বারা সরবরাহ করা হয় rename, যেখানে মূলটি নিজেই prenameসরবরাহ perlকরে। থেকে apt-cache show rename:
এই প্যাকেজটি ফাইল (ফাইল :: পুনঃনামকরণ) নামকরণের জন্য পার্ল ইন্টারফেস এবং একটি কমান্ড লাইন সরঞ্জাম 'পুনর্নবীকরণ' উভয় সরবরাহ করে যা বর্তমানে পার্ল প্যাকেজ দ্বারা সরবরাহিত সংস্করণটি প্রতিস্থাপনের উদ্দেশ্যে তৈরি করা হয়েছে।
যদি এটি ইতিমধ্যে যথেষ্ট বিভ্রান্তিকর না হয়ে থাকে তবে আপনি প্যাকেজটি renameথেকে আরও কিছু আসতে util-linuxপারেন - দেখুন সমস্ত নামের সাথে কী আছে?
যদি আমরা /usr/bin/renameসেই বিষয়ে কথা বলি যা একটি নিফটি পার্ল স্ক্রিপ্ট, তবে renameকমান্ডটি তার নিজস্ব পৃথক প্যাকেজের অন্তর্ভুক্ত।
rename:
Installed: 0.20-4
Candidate: 0.20-4
Version table:
*** 0.20-4 500
500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial/main i386 Packages
100 /var/lib/dpkg/status
কর্ন শেল এবং এর ডেরাইভেটিভসের ক্ষেত্রে renameশেল বিল্ট-ইন কমান্ড।
$ echo $SHELL
/bin/mksh
$ type rename
rename is a shell builtin
renameকমান্ড সম্পর্কে জিজ্ঞাসা করে , তবে renameকেবলমাত্র উল্লেখ করা হয়নি /usr/bin/rename, যেমন আপনি আমার উত্তরটিতে দেখেন। ব্যবহারকারীরা যাদের ksh বা mksh শেল রয়েছে সে সম্পর্কে সচেতন হতে পারে না। যখন আমি ব্যক্তিগতভাবে শুরু করেছি mksh, যখন আমি renameনিয়মিত প্রকাশটি গ্রহণ করছিলাম না তখন আমি খুব বিস্মিত হই, যতক্ষণ না বুঝতে পারি যে সেগুলি দুটি ভিন্ন জিনিস। এছাড়াও, আমার শব্দগুলি "যদি আমরা x সম্পর্কে" কথা বলি না, তবে এটিকে "ক্ষেত্রে" বলার উপায় হিসাবে বিবেচনা করুন
renameফেডোরা সঙ্গে যে জাহাজ অন্য একটি, যদিও। এটি একটি সংকলিত প্রোগ্রাম বলে মনে হচ্ছে এবং এটিrenameউবুন্টুর সাথে জাহাজগুলির মতো প্রায় শক্তিশালী নয় । সুতরাং আপনি যখন অন্য কোনও লিনাক্স বিতরণে স্ক্রিপ্টগুলি ব্যবহার করবেন তখন সাবধান হন।