
rename.ul
Ubuntu 22.04で使用する方法を提案できますか?とても感謝しています!
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
/etc/update-motd.d/50-landscape-sysinfo: 17: cannot create /var/lib/landscape/landscape-sysinfo.cache: Permission denied
System information as of Thu Aug 11 14:43:22 CST 2022
System load: 0.0 Processes: 15
Usage of /: 15.8% of 250.98GB Users logged in: 0
Memory usage: 0% IPv4 address for eth0: 172.25.114.46
Swap usage: 0%
0 updates can be applied immediately.
This message is shown once a day. To disable it please create the
/home/user/.hushlogin file.
user@localhost:~$ rename.ul
rename.ul: command not found
user@localhost:~$ sudo apt-get install util-linux
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
util-linux is already the newest version (2.37.2-4ubuntu3).
util-linux set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
user@localhost:~$ rename
Command 'rename' not found, but can be installed with:
sudo apt install rename
user@localhost:~$ rename.ul
rename.ul: command not found
user@localhost:~$
答え1
rename.ul
rename
パッケージからインストールされたバージョンですutil-linux
。まだ残っている場合は、インストールしてみてくださいapt install util-linux
。ただし、送信されたバグのため、アップストリームのDebianパッケージバージョン2.35.2-5から削除されたようです。util-linux: rename.ul は、"rename" コマンドの可能な代替手段としてインストールされません。。
私が知っている限り、この機能はrename
パッケージ()apt install rename
で提供されているコマンドで利用できます。rename.ul
このコマンドとは別のコマンドで必要な場合は、rename
別のソースからインストールする必要があります。
使用例はマニュアル()man rename
に記載されています。私が見る方法は次のとおりです。次に終わるabc
すべてのファイル名を置き換えます。def
.txt
rename abc def *.txt
また見てください
答え2
他の回答で述べたように(かなり古い質問ですが、まだ正解は提供されていません)、rename
Perlのutilsの使い方は前の回答とは異なります。rename.ul
もちろん、究極のユーティリティは同じです。複数のファイルの名前を変更することです。しかし、インターフェイスは異なります。
Perlの名前変更(デフォルト)は正規表現と複数のファイルで動作します。
./rename s/abc/def/ *.txt
例えば。
util-linuxは古いモード、新しいモード、複数のファイルで動作しますが、
./rename.ul abc def *.txt
Perlバージョンはより強力です。より細かい名前の変更に正規表現を使用できます。正規表現の一般ユーザーとして、私はそれを好みます。しかし、util-linuxのバージョンは実際に私のユースケースの100%をカバーしているので、そうではありません。そしてreadlineのタブ(ほとんどの場合、ファイル名の先頭の名前を変更したい)とうまく機能しますが、Perlバージョンはキーボードを使用してより冗長性と明示的な入力を強制します。
非常に古いコマンドです。したがって、ここには新しいものと古いものはありません(もちろん、1つは他のものよりも新しいです。どちらも知りません。しかし、私はそれらを長く知っていました。おそらく10年以上でしょう)。
昔はこれがコマンドutil-linux
でrename
インストールされました。そしてこれを行うにはPerlを掘り下げなければなりません。 RedHatの場合はまだそうです。rename
コマンドがデフォルトでPerlバージョンを指すDebianベースのシステムでは、これ以上はありません。
ただし、このコマンドはUbuntu 20までのutil-linux
コマンドとして使用できますrename.ul
。 Debian から削除され、Ubuntu 22 から削除されました。これにより、1人以上の人々が怒り、一種の抗議で「エラーマーク」を投稿する人がまだいます(それは実際には間違いではなく、せいぜい悪い決断であることを明らかに知っています)。
ただし、Ubuntu 22ではperlしか使用できrename
ず、util-linuxは他の名前(例:)としても使用できませんrename.ul
。
私は非常に単純なPythonスクリプトを使って作業を行います。
#!/usr/bin/python3
import sys
import os
if len(sys.argv)<4:
print("Usage rename.ul pattern newPattern file1 file2 file3 ...")
print("Renames all file1, file2, ... by replacing 'pattern' by 'newPattern' in their filenames")
sys.exit(1)
for fn in sys.argv[3:]:
os.rename(fn, fn.replace(sys.argv[1], sys.argv[2]))
rename.ul
もちろん、オプション(制御の上書き、練習の実行、シンボリックリンクの処理方法など)はありません。また、特殊文字やそれに似たもので顧問テストをしたことがありません。しかし、それはrename.ul
私が10年間やってきたこととまったく一致しています。必要に応じて使用できます(すべての「保証なし」およびそのような免責事項を含む)。このスクリプトによってファイルが失われた場合、これは私の責任ではなくあなたの責任です。 :D)