rename
आज्ञा कहाँ से आती है?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
rename
आज्ञा कहाँ से आती है?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
जवाबों:
हैरानी की बात है, यह 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
करना चाहिए । कमांड खोजने के लिए नहीं है , यह फ़ाइल को स्थापित करने वाले पैकेज को ढूंढता है , और फ़ाइल के निरपेक्ष पथ के साथ लागू होने पर सबसे उपयोगी है। यह अच्छा होगा यदि समझाया जाए कि कोई पैकेज उस सिम्लिंक को क्यों नहीं प्रदान करता है, लेकिन मुझे लगता है कि इसे अभी भी सच बताना चाहिए जो कोई पैकेज नहीं करता है। dpkg -S foo
foo
foo
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
आप उपयोग करके वैकल्पिक कार्यान्वयन देख सकते हैं
$ 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
था जब मैं नियमित अभिव्यक्ति को स्वीकार नहीं कर रहा था , जब तक मुझे एहसास नहीं हुआ कि वे दो अलग-अलग चीजें हैं। इसके अलावा, "अगर हम एक्स के बारे में बात कर रहे हैं तो" मेरे शब्दों को न लें, इसे "कहने के तरीके के रूप में विचार करें"
rename
फेडोरा के साथ कि जहाजों इससे अलग है, हालांकि है। यह एक संकलित कार्यक्रम प्रतीत होता है और यहrename
उबंटू के साथ उस जहाज जितना शक्तिशाली नहीं है । इसलिए जब आप एक अलग लिनक्स वितरण पर स्क्रिप्ट का उपयोग करते हैं तो सावधान रहें।