Nerede gelmez renamekomut geliyor?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
prename
Nerede gelmez renamekomut geliyor?
user@host> dpkg -S /usr/bin/rename
dpkg-query: no path found matching pattern /usr/bin/rename
prename
Yanıtlar:
Şaşırtıcı bir şekilde, renamepaketten geliyor .
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 -SSymlink'i neden takip etmiyor ? Hata veya özellik?
dpkgiş değil . dpkgsadece kurulu paketlerle ilgilenir. Kullanın update-alternatives --query rename , size çözümlenmiş bağlantı yolunu gösterecektir
dpkg/ Eğer dpkg-querybu bilgileri uygun bir şekilde sunulan kullanışlı olacaktır . Ancak, bir paket dosyası bulana kadar sembolik sessizce dereference dpkg -Sgerektiğini düşünmüyorum . komutu bulması gerekmiyorsa , dosyayı yükleyen paketi bulur ve bir dosyanın mutlak yoluyla çağrıldığında en kullanışlıdır. Neden hiçbir paketin bu sembolik bağlantıyı sağladığını açıklamak güzel olurdu , ama yine de hiçbir paketin yapmadığı gerçeğini söylemeliyiz. dpkg -S foofoo foodpkg -S /usr/bin/rename
Muhtemelen bu update-alternativesmekanizma tarafından yönetilen sembolik bir bağlantı olduğunu göreceksiniz :
$ ls -l $(which rename)
lrwxrwxrwx 1 root root 24 Jun 29 2016 /usr/bin/rename -> /etc/alternatives/rename
İsteğe bağlı uygulamaları aşağıdakileri kullanarak görebilirsiniz:
$ update-alternatives --list rename
/usr/bin/file-rename
/usr/bin/prename
ve kullanarak uygulamalar arasında seçim yapabilir
update-alternatives --config rename
FWIW paket file-renametarafından renamesağlanırken, orijinal kendisi prenametarafından sağlanır perl. Gönderen apt-cache show rename:
Bu paket, dosyaları yeniden adlandırmak için bir perl arabirimi (Dosya :: Yeniden Adlandır) ve perl paketi tarafından sağlanan sürümün yerini alması amaçlanan bir komut satırı aracı 'yeniden adlandır' sağlar.
Bu olmasaydı zaten yeterince kafa karıştırıcı olarak ayrıca bir başka rastlamak olabilir renamegelen util-linuxpaketin - bkz tüm adlandırmalar ne?
Eğer bahsediyorsak /usr/bin/rename, bu oldukça şık bir perl betiğidir, o zaman renamekomut kendi ayrı paketine aittir.
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
Korn kabuğu ve türevleri durumunda rename, bir kabuk yerleşik komutudur.
$ echo $SHELL
/bin/mksh
$ type rename
rename is a shell builtin
renamekomuta soruyor , ancak cevabımda gördüğünüz gibi renamesadece atıfta bulunulmuyor /usr/bin/rename. Ksh veya mksh mermisi olan kullanıcılar bunun farkında olmayabilir. Şahsen mkshişe başladığımda rename, normal ifadeyi kabul etmediğimde, bunların iki farklı şey olduğunu anlayana kadar çok şaşırmıştım . Ayrıca, sözlerimi almayın "Eğer x hakkında konuşuyorsak", "Durumda" demenin bir yolu olarak düşünün
renamede Fedora ile birlikte gelenler farklı. Derlenmiş bir program gibi görünüyor verenameUbuntu ile birlikte gelen kadar güçlü değil . Farklı bir Linux dağıtımında komut dosyaları kullanırken dikkatli olun.