D'où vient la rename
commande?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
command-line
dpkg
rename
guettli
la source
la source
rename
livré avec Fedora est un autre, cependant. Il semble être un programme compilé et il n'est pas aussi puissant querename
celui fourni avec Ubuntu. Soyez donc prudent lorsque vous utilisez des scripts sur une autre distribution Linux.prename
Réponses:
Étonnamment, cela vient de l'
rename
emballage.la source
dpkg -S
suit-il pas le lien symbolique? Bug ou fonctionnalité?dpkg
le travail.dpkg
ne traite que des packages installés. Utilisezupdate-alternatives --query rename
, il vous montrera le chemin de lien résoludpkg
/dpkg-query
offrait cette information commodément. Cependant, je ne pense pas que celadpkg -S
devrait silencieusement déréférencer les liens symboliques jusqu'à ce qu'il trouve un fichier de package.dpkg -S foo
n'est pas censé trouver la commandefoo
, il trouve le package qui a installé le fichierfoo
et est plus utile lorsqu'il est appelé avec le chemin absolu d'un fichier. Ce serait bien si ondpkg -S /usr/bin/rename
expliquait pourquoi aucun paquet ne fournit ce lien symbolique, mais je pense qu'il devrait quand même dire la vérité qu'aucun paquet ne le fait.Vous constaterez probablement qu'il s'agit d'un lien symbolique géré par le
update-alternatives
mécanisme:Vous pouvez voir les implémentations facultatives en utilisant
et peut choisir entre les implémentations en utilisant
FWIW
file-rename
est fourni par lerename
package, tandis que l'originalprename
est fourni parperl
lui-même. Deapt-cache show rename
:Comme si cela n'était pas déjà assez déroutant, vous pouvez également en rencontrer un autre
rename
dans leutil-linux
package - voir Qu'est-ce que tous les renommages?la source
Si nous parlons
/usr/bin/rename
, qui est un script perl assez astucieux, alors larename
commande appartient à son propre package séparé.Dans le cas du shell Korn et de ses dérivés,
rename
est une commande intégrée au shell.la source
rename
commande, maisrename
n'est pas seulement mentionnée/usr/bin/rename
, comme vous le voyez dans ma réponse. Les utilisateurs qui ont des shells ksh ou mksh ne le savent peut-être pas. Quand j'ai commencé personnellementmksh
, j'étais très déconcerté quand jerename
n'acceptais pas l'expression régulière, jusqu'à ce que je réalise que c'était deux choses différentes. Aussi, ne prenez pas mes mots "si nous parlons de x" littéralement, considérez-le comme une façon de dire "en cas de"