Những gì với tất cả các tên: prename, đổi tên, đổi tên tập tin?


23

Trên hệ thống Debian của tôi (tốt, hệ thống LMDE của tôi, nhưng đủ gần), tôi có ít nhất 3 renamechương trình khác nhau :

  • /usr/local/bin/rename: Đây là một kịch bản Perl, được viết bởi Tom Christiansen. Thật kỳ lạ, tôi dường như không thể tìm thấy gói nào đã cài đặt nó:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
  • /usr/bin/prename: một kịch bản perl khác, được viết bởi Robin Barker, đây là một phần của perlgói:

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
  • /usr/bin/file-rename: chưa có một kịch bản Perl nào khác, không có thông tin về quyền tác giả rõ ràng nhưng cả một Larry (có lẽ là Tường) và Robin (có lẽ là Barker) đều được đề cập. Cái này được cài đặt bởi renamegói và cũng được liên kết với /usr/bin/rename:

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

Tôi cũng có rename.ultừ util-linuxnhưng bây giờ hãy bỏ qua cái đó. Sự khác biệt giữa 3 kịch bản Perl này là gì? Tất cả họ dường như có cùng một trang người đàn ông man rename, man file-renameman prenametất cả đều cho tôi cùng một trang.

Tôi có thể tự mình xem qua các kịch bản và cố gắng hiểu sự khác biệt nhưng điều đó không tầm thường và tôi hy vọng ai đó sẽ biết những tính năng mà mỗi người khác không có. Điểm thưởng để giải thích lý do tại sao thế giới Debian cần ba tập lệnh đổi tên Perl riêng biệt.


Tệ hơn thế! RHEL vận chuyển một nhị phân hoàn toàn khác nhau như là một phần của util-linux-nggói của họ . % File = đổi tên / usr / bin / đổi tên: ELF 64-bit LSB thực thi, x86-64, phiên bản 1 (SYSV), ...
thrig

@thrig Tôi đã chuyển đổi câu trả lời của bạn thành một nhận xét vì nó không thực sự trả lời câu hỏi (sự khác biệt giữa các tập lệnh này và tại sao có quá nhiều phiên bản perl). Bạn đang nói về những renametừ util-linuxmà là rename.ultrên Debian và renametrên các hệ thống RedHat. Tôi đề cập đến nó trong đoạn áp chót của câu hỏi của tôi.
terdon

Điều gì update-alternatives --display renamethể hiện cho bạn? Tự hỏi nếu nó là một phần của một thay thế sau cài đặt.
Jeff Schaller

@JeffSchaller không, nó đến từ Unicode :: Tussle . Tác giả của nó (tchrist) đang hoạt động trên SE và anh ấy đã giải thích cho tôi trong trò chuyện.
terdon

4
Liên quan . Đối với bản ghi, tập lệnh đổi tên với tên tôi mà bạn đề cập hỗ trợ một số tùy chọn hữu ích cho tôi như viết lại các mục tiêu liên kết tượng trưng thay vì tên đường dẫn thích hợp, đọc danh sách tên tệp từ các đường dẫn và tên đường dẫn bị hủy trong danh sách đó - cộng với tên bình thường -v-icác tùy chọn. Đó là một kịch bản cũ, cũ, cũ mà không có tài liệu phù hợp bên ngoài thông điệp sử dụng của nó, nhưng đó là một tiêu chuẩn phù hợp cho việc viết lại tên tệp en-masse . Đó là một trong hai hoặc ba kịch bản mà tôi luôn muốn với tôi bất kể tôi đi đâu.
tchrist

Câu trả lời:


16

Không chắc đây có phải là một nhận xét không, nhưng đó chỉ là một câu trả lời một phần -

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

có những gì dường như là hạt giống của mớ hỗn độn. Đặc biệt:

Vì vậy, để tóm tắt: trong nhiều năm, gói perl đã cung cấp / usr / bin / đổi tên, một tiện ích stanopol được triển khai trong perl. Vấn đề là chúng tôi không muốn cung cấp tiện ích từ gói perl nữa vì nó đã được thêm cục bộ bên trong debian / và không được duy trì. Một phiên bản được duy trì có sẵn dưới dạng một gói riêng, libfile-rename-perl.

Các libfile-rename-perlđề cập ở trên bây giờ được thay thế bằng 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

Vì vậy, Perl có cái riêng renamekhông được Debian duy trì và cung cấp /usr/bin/prename. Các nhà phát triển Debian duy trì một renamegói (trước đây được gọi là libfile-rename-perl) là gói cung cấp /usr/bin/rename: một liên kết tượng trưng /etc/alternatives/renamemà chính nó là một liên kết tượng trưng đến /usr/bin/file-renametập lệnh.

Kịch bản của Tom Christiansen được đóng gói với Unicode::Tusslemô-đun của Perl . Bạn có thể đã cài đặt nó và đó là những gì được cung cấp /usr/local/bin/rename.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.