
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。
Macで作成された拡張子のないJPEGファイルがたくさんあります。
あるディレクトリの中の拡張子のない全てのファイルに.jpgをつけるコマンドを
教えていただけないでしょうか。
コマンド集などを探したのですが、見つけられませんでした。
初歩的な質問で申し訳ございません。
オフライン
for i in `find . -maxdepth 1 \! -name \*.\*` ; do mv $i $i.jpg ;done
即興なのでバックアップを取った上でどうぞ。
オフライン
シェルスクリプトで処理するのが王道ですが、リネームソフトもあるようです。
metamorphose(日本語化されてました)
http://file-folder-ren.sourceforge.net/
使い勝手は分りませんが。
オフライン
xfceのファイルマネージャーであるThunarにはBulk Renamerが含まれていますね。
http://thunar.xfce.org/pwiki/documentation/bulk_renamer
こういうのでも役に立つ場面は多いのでPythonかなんかで書いたものが含まれていると便利なのでしょうが(Nautilusのプラグインであるかな?)。
オフライン
gtk-perlのものならGPRenameがありました。
http://gprename.sourceforge.net/
オフライン
hitoさん、yamaさん、anoirさん、ありがとうございます。
macでも同じ作業をしたかったので、できればコマンドでやりたいと思います。
hitoさんに教えていただいたコマンドはUbuntuではちゃんと拡張子つきました。
だたし、私にはコマンドがちんぷんかんぷんです。
1.ディレクトリの中のファイルはすべて拡張子のないJPEGファイル
2.そのディレクトリの下には他の階層はない
という条件なら、もっと簡単なコマンドでできませんか?
よろしくおねがいします。
オフライン
ただいまMacでも試してみましたが,hitoさんに教えていただいたコマンドでうまくいきました。
ありがとうございます。
(まだちんぷんかんぷんなのは変わりませんが。)
いま、一生懸命、件のコマンドの意味を調べてます。
Macは長年使ってますが、今日始めてターミナルを使いました。
オフライン
gonchichi による投稿:
1.ディレクトリの中のファイルはすべて拡張子のないJPEGファイル
2.そのディレクトリの下には他の階層はない
という条件なら、もっと簡単なコマンドでできませんか?
よろしくおねがいします。
for i in `/bin/ls -1 *` ; do mv $i $i.jpg ;done
でどうぞ。
# 即興なのでバックアップを(以下略)
オフライン
初心者にも分かり易いスクリプト(renamejpg.sh)を
使い方: $ renamejpg.sh <ディレクトリ>
下記スクリプトを、renamejpg.sh と名前を付け、$HOME/bin/ に保存、実行権を付けます。
#!/bin/bash
res=`ls $1`
for f in $res
do
mv ${1}"/"${f} ${1}"/"${f}".jpg"
done解説
res=`ls $1`
変数 $1 :renamejpg.shに対する第一引数(ディレクトリ名)
指定されたディレクトリのファイルをリストし、変数res に代入
for f in $res
変数 res から、1っづつ、ファイル名を f に代入し、do〜done を実行する
mv ${1}"/"${f} ${1}"/"${f}".jpg"
引数のディレクトリ名とファイル名を連結、リネーム
最後の編集者: si (2007-12-26 21:48:40)
オフライン
hitoさん、これはまた簡潔なコマンドありがとうございます。
ばっちり機能しました。
siさん、スクリプトだと、何度も同じような作業をするときに便利なんですね。
ご丁寧な解説ありがとうございます。
恥ずかしながら、なんとなくでしか理解できませんが、
おかげさまで、hitoさんのコマンドもなんとなく理解できたような気がします。
(まだ、自分では書けないけど)
恥をかきついでにお聞きします。
こういうスクリプトって何かのプログラム言語ですか?
オフライン
>こういうスクリプトって何かのプログラム言語ですか?
#!/bin/bash
とあるように、Ubuntu標準シェル、bashのスクリプトです。
例えば、rubyスクリプトの場合は、ここが
#!/usr/bin/ruby とか #!/usr/bin/env ruby
になります。ruby は、標準では入ってませんが、perl とか python と言ったスクリプト言語は,標準で入っています。
オフライン
siさん
考慮済でしたら、申し訳ありません。
今まわりにLinux環境がないので試せていませんが、
投稿されたスクリプト、
ディレクトリ名にスペースが入っていた場合も問題ないでしょうか。
余計な心配なら良いのですが、初心者の方も使われると思いますので・・・
オフライン
ken661215 による投稿:
siさん
考慮済でしたら、申し訳ありません。
今まわりにLinux環境がないので試せていませんが、
投稿されたスクリプト、
ディレクトリ名にスペースが入っていた場合も問題ないでしょうか。
余計な心配なら良いのですが、初心者の方も使われると思いますので・・・
考慮していません。ディレクトリ名にスペースが入っている場合は問題出ます。
オフライン
>考慮していません。ディレクトリ名にスペースが入っている場合は問題出ます。
siさん、ご回答ありがとうございました。でしゃばってすみません。
と言うことですので、gonchichiさん
スクリプトを作成する際に、
名称にスペースが含まれるディレクトリを対象に処理をする場合は、
注意が必要です。
最後の編集者: ken661215 (2007-12-27 15:02:51)
オフライン
ken661215さん、siさん、ありがとうございます。
スペースの入ったディレクトリ名やファイル名は使ったことないので
私については問題なさそうです。
bashってなんとなくDOSのconfig.sysみたいなものと思っていたのですが、
すごく複雑なんですね。ゆっくり勉強してみます。
でわ有難うございました。
オフライン