Linuxでファイル名の前後に文字を追加したい時の簡単な方法

ある方に、

「ファイル名の最初に一括でzとつけたいのだけれども、どうしたらよいだろうか?」

と質問されました。

たとえば、

001.jpg 002.jpg 003.jpg 004.jpg

をすべて

z001.jpg z002.jpg z003.jpg z004.jpg

としたいというような時です。

ここで、Linuxではrenameというコマンドを使います。

renameは以下の書式を知っていれば応用が効きます。

rename 's/置換前文字列/置換後文字列/' ファイル名

この、’s/before/after/’はsedでの置換と同じ書式です。sはsubstituteの略です。

でも、今は置換ではなく、文字列を追加したいわけです。

こういう時、Linuxはたいしたもんだなと思うのですが、ファイルの頭は^という特殊文字で表現されます。
そして、ファイルの最後は$で表現されます。(正規表現ですね)

なので、今、ファイル名にzを追加したい時は、

「^をzに置換」してあげると考えるわけです。

したがって、以下のようになります。

rename 's/^/z/' 00*.jpg

もし、ファイル名の最後に.oldをつけたかったら以下のようになります。

rename 's/$/.old/' 00*.jpg

^と$についての知識がちょっとあるだけで、ずいぶん楽になりますね。

iTunes Matchがフリーズする(終わらない、止まる)時の対処法:アップロードのスピードを絞ってみる

iTunes Matchが日本でもはじまりました。
しかし、多くの方がうまくいかずに苦しんでいます。私もその一人。

ネットには様々な情報が流れていますが、ステップ1、2で今まで一番うまくいったのは、

  • 一度「停止」して、iTunesのメニューの「Store」→「iTunes Matchをアップデートする」
  • サインアウトして、再度サインして再トライ

の2つでした。しかし、それでもステップ3で途中で止まってしまって先に行けないという現象に遭遇していました。

そこで、なぜ、上記の2つが有効なのか考えました。

基本的に、ネットワーク関連でうまくいかないときに一度止めて再度トライするとうまくいくことがあるというのは、基本的に情報のアップロードがうまくいっておらず、一度停止してリトライすることで新たにサーバーへの接続がなされるからということが多いからと思います(確証がないので断定しません)。サービス開始直後でアクセスが多いこともあると思いますが、おそらく、データのアップロードで情報がオーバーフローしているのではないか?と思いました。

そこで、帯域制限をしたらうまくいったという報告をしている人がいないかと思ったら、いらっしゃいました。

をぢの日記−意外な方法で、Music Matchが終わらない件が解決した

そこに以下のような記載があります。

iTunes Matchがアップロード帯域を使い果たしてしまい、そのためにiTunes自体がiTunesサーバにアクセスできず、 自己破綻してハングしているという説らしい。Apple Support Communityにも同様の投稿があった

私の推測は大きく間違っていないようです。
そこで、早速、私が音楽の管理のために使っているMac Book Proに、(一度、iTunes Matchを停止してから)上記サイトでも紹介されているSpeedLimitを導入してみました。

ちなみに、ダウンロードして普通にダブルクリックすると「セキュリティ上あけられません」などと言われると思いますので、
Finderを開き、ダウンロードフォルダに行ってから、右クリックで「開く」とするとインストールできます。

インストール後、環境設定に入りますので、立ち上げます。
そこで、Port80と443を選び、Speedを768k(DSL)を選び、”Slow Down”としました。私が現在使っている環境はネットワークがそこまで速くなかったからです。

speedlimiter01

speedlimiter02

この設定をして、再度iTunes Matchを走らせたところ、一度だけネットワークエラーで止まりましたが、その1回だけで結果的には丸2日間かけて3500曲のアップロードが完了しました。それまではせいぜい1時間以内で止まっていたことを考えると、帯域制限がいい方向に動いてくれているということになります。また、私はステップ3に行ってからこの方法を試したのでステップ1および2に及ぼす影響はよくわかりませんが、おそらくよい方向に働くのではないかと思います。

ということで、iTunes Matchで苦しんでいる方は、ネットワークの帯域を少し絞ってみるのがよいかもしれません。