2.13一括名前変更と移動

1183 ワード

『Linux Shellシナリオ攻略(第2版)』読書ノート
現在のディレクトリの画像ファイルの名前を特定のフォーマットで変更するには、次のスクリプトを使用します.
#!/bin/bash
#   :rename.sh
#  :    .jpg   .png   

count=1
for img in $(find . -iname '*.png' -o -iname '*.jpg' -type f -maxdepth 1); do
  new=image-$count.${img##*.}

  echo "Renaming $img to $new"
  mv "$img" "$new"
  let count++
done

出力は次のとおりです.
$ bash rename.sh
Renaming ./hack.jpg to image-1.jpg
Renaming ./new.jpg to image-2.jpg
Renaming ./next.png to image-3.png

名前変更操作を実行する他の方法
  • *.JPG*.jpg
  • に改称する.
    rename *.JPG *.jpg
    
  • ファイル名のスペースを文字「」に置き換えます.フォルダを含む
  • rename 's/ /_/g' *
    # 's/ /_/g'        
    # *             
    
  • 変換ファイル名の大文字と小文字
  • rename 'y/A-Z/a-z/' *  #     
    rename 'y/a-z/A-Z/' *  #     
    
  • はすべてをmp 3ファイルは、所与のディレクトリ
  • に移入される
    find . -type f -name "*.mp3" -exec mv {} target_dir \;
    
  • すべてのファイル名のスペースを文字''に置き換えます.
  • find . -type f -exec rename 's/ /_/g' {} \;