सभी नामों के साथ क्या है: prename, rename, file-rename?


24

मेरे डेबियन सिस्टम पर (अच्छा, मेरा LMDE सिस्टम, लेकिन पर्याप्त रूप से बंद), मेरे पास कम से कम 3 अलग-अलग renameकार्यक्रम हैं:

  • /usr/local/bin/rename: यह एक पर्ल स्क्रिप्ट है, जिसे टॉम क्रिस्टियन ने लिखा है। ताज्जुब है, मुझे लगता है कि जो पैकेज यह स्थापित करने के लिए प्रतीत नहीं हो सकता:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
  • /usr/bin/prename: रॉबिन बार्कर द्वारा लिखित एक और पर्ल स्क्रिप्ट, यह एक perlपैकेज का हिस्सा है :

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
  • /usr/bin/file-rename: अभी तक एक और पर्ल स्क्रिप्ट, कोई स्पष्ट लेखक जानकारी नहीं है, लेकिन एक लैरी (संभवतया दीवार) और एक रॉबिन (संभवतया बार्कर) दोनों का उल्लेख किया गया है। यह एक renameपैकेज द्वारा स्थापित किया गया है और इसके लिए सीमांकित भी है /usr/bin/rename:

    $ dpkg -S /usr/bin/file-rename
    rename: /usr/bin/file-rename

मेरे पास भी है rename.ul, util-linuxलेकिन आइए अब उस पर ध्यान न दें। इन 3 पर्ल लिपियों में क्या अंतर है? उन सभी को एक ही आदमी पृष्ठ लगता है man rename, man file-renameऔर man prenameसभी मुझे एक ही पृष्ठ देते हैं।

मैं स्वयं लिपियों के माध्यम से जा सकता था और मतभेदों को समझने की कोशिश कर सकता था लेकिन यह तुच्छ नहीं है और मैं उम्मीद कर रहा हूं कि किसी को पता चलेगा कि प्रत्येक में ऐसी क्या विशेषताएं हैं जो दूसरों के पास नहीं हैं। यह समझाने के लिए बोनस अंक कि डेबियन दुनिया को तीन अलग-अलग पर्ल नाम की स्क्रिप्ट की आवश्यकता क्यों है।


इससे भी बुरा है! आरएचईएल अपने util-linux-ngपैकेज के हिस्से के रूप में पूरी तरह से अलग बाइनरी जहाज करता है । % फ़ाइल = नाम बदलें / usr / बिन / नाम: ELF 64-बिट LSB निष्पादन योग्य, x86-64, संस्करण 1 (SYSV), ...
thrig

@thrig मैंने आपके उत्तर को एक टिप्पणी में बदल दिया क्योंकि यह वास्तव में सवाल का जवाब नहीं दे रहा था (इन लिपियों के बीच अंतर क्या है और इतने सारे पर्ल संस्करण क्यों हैं)। आप के बारे में बात कर रहे हैं renameसे util-linuxजो है rename.ulडेबियन पर और renameRedHat सिस्टम पर। मैं इसका उल्लेख अपने प्रश्न के विस्तृत अनुच्छेद में करता हूँ।
terdon

आपके लिए क्या update-alternatives --display renameदिखाता है? आश्चर्य है कि अगर यह पोस्ट-इंस्टॉल किए गए विकल्प का हिस्सा है।
जेफ स्कालर

@JeffSchaller नहीं, यह यूनिकोड :: टसल से आता है । इसका लेखक (टीचर) एसई पर सक्रिय है और उसने मुझे चैट में समझाया।
terdon

4
संबंधित । रिकॉर्ड के लिए, मेरे नाम के साथ इसका नाम बदलने की स्क्रिप्ट, जिसमें आप उल्लेख करते हैं, कुछ उचित-उपयोगी विकल्प का समर्थन करता है जैसे कि सिम्प्लेक्स के लक्ष्यों को फिर से लिखने के बजाय, पाइप से फ़ाइल नाम सूची पढ़ना, और उस सूची में अशक्त-समाप्त पथनामों को पढ़ना - प्लस " सामान्य ” -vऔर -iविकल्प। यह अपने उपयोग संदेश के बाहर उचित प्रलेखन के बिना एक पुरानी, ​​पुरानी, ​​पुरानी लिपि है, लेकिन यह एन-मस्से फाइलनाम पुनर्लेखन के लिए एक मानक वर्कहॉर्स है। यह शायद दो या तीन लिपियों में से एक है जिसे मैं हमेशा अपने साथ रखना चाहता हूं, जहां मैं जाता हूं।
tchrist

जवाबों:


16

यकीन नहीं है कि यह एक टिप्पणी होनी चाहिए, लेकिन यह केवल एक आंशिक जवाब है -

http://lists.alioth.debian.org/pipermail/perl-maintainers/2014-February/004113.html

लगता है जो गड़बड़ का बीज है। विशेष रूप से:

इसलिए संक्षेप में: कई वर्षों के लिए पर्ल पैकेज ने / usr / bin / rename प्रदान किया है, जो पर्ल में लागू एक स्टैनलोन उपयोगिता है। मुद्दा यह है कि हम पर्ल पैकेज से उपयोगिता प्रदान नहीं करना चाहते हैं क्योंकि इसे स्थानीय रूप से डेबियन के अंदर जोड़ा गया है और इसका रखरखाव नहीं किया जा रहा है। एक अनुरक्षित संस्करण एक अलग पैकेज के रूप में उपलब्ध है, लिबफाइल-नाम-पर्ल।

libfile-rename-perlजैसा कि ऊपर उल्लेख अब तक बदल दिया है rename:

$ apt-cache show rename | head
Package: rename
Version: 0.20-3
Installed-Size: 69
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Architecture: all
Replaces: libfile-rename-perl
Provides: libfile-rename-perl
Depends: perl
Conflicts: libfile-rename-perl
Description-en: Perl extension for renaming multiple files

तो, पर्ल का अपना है renameजो डेबियन द्वारा बनाए नहीं रखा गया है और प्रदान करता है /usr/bin/prename। डेबियन देवता एक renameपैकेज (जाहिरा तौर पर पूर्व के रूप में जाना जाता है libfile-rename-perl) को बनाए रखता है जो पैकेज है जो प्रदान करता है /usr/bin/rename: एक सिमिलिंक /etc/alternatives/renameजो खुद /usr/bin/file-renameस्क्रिप्ट के लिए एक सिम्लिंक है ।

टॉम क्रिस्टियन की स्क्रिप्ट पर्ल के Unicode::Tussleमॉड्यूल के साथ बंडल की गई है । आपने शायद इसे स्थापित किया है और यही प्रदान किया है /usr/local/bin/rename

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.