スクリプトは、パスディレクトリで指定されたすべてのファイルの名前を変更します。

スクリプトは、パスディレクトリで指定されたすべてのファイルの名前を変更します。

パスディレクトリに指定されているすべてのファイルの名前を大文字に変更するスクリプトをUbuntuで作成する必要があります。私はファイル名を変更するループを見つけましたが、ループにパスを渡す方法がわかりません。助けてください?

これはループです:

for f in *; do 
    mv "$f" "$f.tmp"; 
    mv "$f.tmp" "`echo $f | tr "[:lower:]" "[:upper:]"`"; 
done

私はこのような道を通過しようとしました。

for f in path_to_dir* ...

しかし、それがすることは何とか.tmpディレクトリを作成するだけです。

ベストアンサー1

私は次のことをします:

#! /bin/zsh -
ret=0
autoload zmv
for dir do
  (cd -P -- "$dir" && zmv '*(#qN)' '$f:u') || ret=$?
done
exit "$ret"

スクリプト名は次のとおりです。

that-script /path/to/dir /path/to/other/dir...

おすすめ記事