に親フォルダ名とファイルの束を名前変更:(いくつかのファイルがネストされたフォルダ内に位置している)次のように私はファイルを持っているOS X
/1/asd.m
/3/asd.m
/4/2/asd.m
を、私は彼らの親の接尾辞を持つ.Mファイルの名前を変更したいですフォルダ名。結果は次のようになります。
/1/asd1.m
/3/asd3.m
/4/2/asd2.m
Mac端末でこれを行うにはどうすればよいですか?
に親フォルダ名とファイルの束を名前変更:(いくつかのファイルがネストされたフォルダ内に位置している)次のように私はファイルを持っているOS X
/1/asd.m
/3/asd.m
/4/2/asd.m
を、私は彼らの親の接尾辞を持つ.Mファイルの名前を変更したいですフォルダ名。結果は次のようになります。
/1/asd1.m
/3/asd3.m
/4/2/asd2.m
Mac端末でこれを行うにはどうすればよいですか?
あなたのファイルを含むフォルダの名前がrename_folder
の場合:
rename_folder/1/asd.m
rename_folder/3/asd.m
rename_folder/4/2/asd.m
このコマンドでは、それらのファイルの名前を変更することができます
find rename_folder -type f -name "*.m" -exec sh -c 'x="{}"; fn="${x##*/}"; dn="$(dirname $x)"; mv "$x" "${dn}/${fn%%.*}${dn##*/}.${fn#*.}"' \;
結果は次のようになります。
rename_folder/1/asd1.m
rename_folder/3/asd3.m
rename_folder/4/2/asd2.m
スペースを使ってdirnamesを考慮するより単純でより普遍的な方法:
find . -name '*.mp3' -exec bash -xc 'dn=$(dirname "{}"); fn=$(basename "{}"); mv -v "{}" "$dn/$dn-$fn" ' \;
結果(bash -x
を経由して冗長性):
++ dirname './80 дней вокруг света/56.mp3'
+ dn='./80 дней вокруг света'
++ basename './80 дней вокруг света/56.mp3'
+ fn=56.mp3
+ mv -v './80 дней вокруг света/56.mp3' './80 дней вокруг света/./80 дней вокруг света-56.mp3'
./80 дней вокруг света/56.mp3 -> ./80 дней вокруг света/./80 дней вокруг света-56.mp3