0

複数のダッシュがあるファイル名を再帰的に削除して、file---name-3.jpgfile-name- 3.jpg になるようにします。これは単一のフォルダー内では正常に機能しますが、親フォルダーに移動してコマンドを実行したいと思います。また、複数のダッシュを持つフォルダー名に遭遇するまでは正常に機能し、その後、それらの名前を変更しようとします。

find . -type f -iname '*---*' -depth -exec rename 's/---/-/gi' {} +

parent_folder
  \sub--folder-1
     file--name-1.jpg <-- rename file-name-1.jpg
     file----name-2.jpg <-- rename file-name-2.jpg
  \sub----folder-2
     file--name-1.jpg <-- rename file-name-1.jpg

CentOS サーバーで bash を使用して編集する

4

1 に答える 1

1

-execdir を使用して、現在のディレクトリから相対パスでコマンドを実行する -exec ではなく、ファイル名だけでファイルのディレクトリからコマンドを実行します。

find . -depth -type f -iname '*---*' -execdir rename 's/---/-/gi' {} +
于 2013-02-28T23:58:57.070 に答える