Bütün bu isimler ne: prename, yeniden adlandırmak, dosya yeniden adlandırmak?


24

Debian sistemimde (peki, LMDE sistemim, ancak yeterince yakın), en az 3 farklı renameprogramım var:

  • /usr/local/bin/rename: Bu Tom Christiansen tarafından yazılmış bir Perl yazısı. İşin garibi, hangi paketin yüklü olduğunu bulamıyorum:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
  • /usr/bin/prename: Robin Barker tarafından yazılmış başka bir perl betiği, bu perlpaketin bir parçası :

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
  • /usr/bin/file-rename: Yine başka bir Perl senaryosu, açık bir yazar bilgisi yok, ancak hem Larry (muhtemelen Wall) hem de Robin (muhtemelen Barker) belirtildi. Bu renamepaket tarafından yüklenir ve ayrıca aşağıdakilere bağlanır /usr/bin/rename:

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

Ben de var rename.uldan util-linuxancak izin şimdilik Şunu görmezden gelirler. Bu 3 Perl betiği arasındaki fark nedir? Hepsi aynı adam sayfasını var gibi görünüyor, man rename, man file-renameve man prenametüm bana aynı sayfayı verir.

Senaryoların içinden geçip farklılıkları anlamaya çalışabilirim ama bu önemsiz değil ve birisinin diğerlerinin sahip olmadığı özelliklere sahip olduğunu bilmesini umuyorum. Debian dünyasının neden üç ayrı Perl yeniden adlandırma komut dosyasına ihtiyaç duyduğunu açıklayan bonuslar.


Bundan daha kötü! RHEL, util-linux-ngpaketlerinin bir parçası olarak tamamen farklı bir ikili veri gönderir . % file = yeniden adlandır / usr / bin / rename: ELF 64-bit LSB çalıştırılabilir, x86-64, sürüm 1 (SYSV), ...
thrig

@ trig Cevabınızı bir yoruma çevirdim çünkü soruyu yanıtlamadı (bu senaryolar arasındaki fark nedir ve neden bu kadar çok perl sürümü var). Bahsettiğin renamedan util-linuxhangi rename.ulDebian ve renameRedHat sistemlerinde. Benim sorumun son paragrafında söz ediyorum.
terdon

update-alternatives --display renamesizin için ne gösterir? Yüklenmiş bir alternatifin parçası olup olmadığını merak ediyorum.
Jeff Schaller

@JeffSchaller hayır, Unicode :: Tussle'den geliyor . Yazarı (tchrist) SE'de aktif ve bana sohbette anlattı.
terdon

4
İlgili . Kayıt için, üzerinde ismim yazan ismiyle yeniden adlandır komut dosyası, uygun dosya isimleri yerine sembolik bağlantı hedeflerini yeniden yazma, dosya isimleri listesini borulardan okuma ve bu listedeki boş bırakılmış yol adlarını - artı “ normal ” -vve -iseçenekler. Kullanım mesajı dışında uygun dokümantasyonu olmayan eski, eski, eski bir komut dosyasıdır, ancak en-masse dosya adının yeniden yazılması için standart bir işgücüdür. Nereye gidersem gideyim her zaman yanımda istediğim belki iki veya üç senaryodan biri.
tchrist

Yanıtlar:


16

Bunun bir yorum olması gerektiğinden emin değilim, ama bu yalnızca kısmi bir cevap.

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

karışıklığın tohumları gibi gözüküyor. özellikle:

Özetlemek gerekirse: perl paketi, yıllarca perl'de uygulanan bağımsız bir yardımcı program olan / usr / bin / rename öğesini sağladı. Sorun şu ki, yardımcı programı perl paketinden daha fazla sağlamak istemiyoruz çünkü yerel olarak debian içine eklenmiş / tutulmuyor. Bakımlı bir sürüm, libfile-rename-perl adında ayrı bir paket olarak mevcuttur.

Yukarıda libfile-rename-perlbelirtilen şimdi şimdi ile değiştirilir 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

Öyleyse, Perl'in renameDebian tarafından korunmadığı ve sağladığı kendi değeri vardır /usr/bin/prename. Debian devs, şu renamepaketi sağlayan bir paket (görünüşe göre önceden bilinir libfile-rename-perl) sağlar /usr/bin/rename: /etc/alternatives/renamekendisinin /usr/bin/file-renamekomut dosyasına bir işaret olduğu bir link .

Tom Christiansen'in senaryosu Perl'in Unicode::Tusslemodülüyle birlikte geliyor . Muhtemelen kurdunuz ve sağladığı şey bu /usr/local/bin/rename.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.