Da dove viene il comando 'rinomina'?

17

Da dove viene il comando rename ?

[email protected]> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
    
posta guettli 19.01.2017 - 15:32

3 risposte

20

Sorprendentemente, proviene dal pacchetto rename .

[email protected]:~$ ls -l /usr/bin/rename
lrwxrwxrwx 1 root root 24 окт 17  2013 /usr/bin/rename -> /etc/alternatives/rename
[email protected]:~$ ls -l /etc/alternatives/rename
lrwxrwxrwx 1 root root 20 апр 29  2016 /etc/alternatives/rename -> /usr/bin/file-rename
[email protected]:~$ dpkg -S /usr/bin/file-rename
rename: /usr/bin/file-rename
    
risposta data Pilot6 19.01.2017 - 15:37
12

Probabilmente scoprirai che si tratta di un collegamento simbolico gestito dal meccanismo update-alternatives :

$ ls -l $(which rename)
lrwxrwxrwx 1 root root 24 Jun 29  2016 /usr/bin/rename -> /etc/alternatives/rename

Puoi vedere le implementazioni opzionali usando

$ update-alternatives --list rename
/usr/bin/file-rename
/usr/bin/prename

e puoi scegliere tra le implementazioni usando

update-alternatives --config rename

FWIW file-rename è fornito dal pacchetto rename , mentre il prename originale è fornito da perl stesso. Da apt-cache show rename :

  

Questo pacchetto fornisce un'interfaccia perl per rinominare i file   (File :: Rinomina) e uno strumento da riga di comando 'rinomina' a cui è destinato   sostituisci la versione attualmente fornita dal pacchetto perl.

Come se questo non fosse già abbastanza confuso, potresti anche incontrare un altro rename dal pacchetto util-linux - vedi Che cosa è con tutti i nomi?

    
risposta data steeldriver 19.01.2017 - 15:48
7

Se parliamo di /usr/bin/rename , che è uno script perl abbastanza elegante, il comando rename appartiene al suo pacchetto separato.

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

Nel caso della shell Korn e delle sue derivate, rename è un comando incorporato nella shell.

$ echo $SHELL
/bin/mksh

$ type rename
rename is a shell builtin
    
risposta data Sergiy Kolodyazhnyy 19.01.2017 - 15:42

Leggi altre domande sui tag