遞歸重命名檔案和資料夾

遞歸重命名檔案和資料夾

我需要重命名指定路徑的每個子資料夾。例如我有一個這樣的目錄結構:

project/
   /x
      /something
          /somethingElse
              /x
          /x.someext
   /notXButTheresXInASubfolder
          /something
              /x

我需要將其更改為:

project/
   /y
      /something
          /somethingElse
              /y
          /y.someext
   /thisContainsXIntheNameButIsNotx
          /something
              /y

理想情況下我會用 bash 腳本來做到這一點,但我不知道如何做到這一點...

答案1

DIRS=$(find /path/to/project -type d -name "x" | sort -r)

while read R; do
  test -z "$R" && continue;
  B=$(dirname "$R")
  mv "$R" "$B/y"
done < <(echo -en "$DIRS")

相關內容