3つのサブフォルダがあるフォルダがあり、各サブフォルダには6つのファイルが含まれています。各サブフォルダには、:NOPM
ファイル名を含む2つのファイルがあります。
すべてのフォルダとそのサブフォルダを確認するには、シェルスクリプトを作成する必要があります。の付いたファイル名がある場合は、:NOPM
名前から削除する必要があります。同じ名前の別のファイルがある場合は、そのファイルを削除して各対話をlog.txtに記録する必要があります。
答え1
find /mydirectory -maxdepth 3 -iname *:nomp* -execdir bash -c 'for f; do base=${f##*/}; mv -- "$f" "${f%/*}/${base//:nomp/whateverYouWant}" && echo $f >> /PATH/log.txt; done' _ {} +
ところで、execdirを使ったので、おそらく${base//:nomp.....}の代わりにbase=${f##*/}を使う必要はないでしょう。 「base」を「.」に置き換えることができます。