Find

如何從文件夾中刪除/重命名副檔名

  • March 28, 2022

我有幾個文件夾,例如 name1@domain.com、name2@domain.com、name3@domain.com。我想將它們重命名為 name1、name2、name3 等。我發現如果它們反之亦然,即 name1、name2、name3 我可以通過執行將其移動到 name1@domain.com

find . -type d -name "*" -depth 1 | while read d; do  mv "$d" "$d@domain.com"; done

但是我該如何做相反的事情?name1@domain.com ==> name1

使用諸如 Bash 之類的外殼:

for d in ./*@*/; do mv "$d" "${d%@*}"; done

for d in ./*@*/循環遍歷目前目錄中名稱包含“@”的所有目錄。${d%@*}是一個參數擴展,給出d變數的值減去最後一個“@”以及後面的任何內容。

您可以使其更具限制性,例如

for d in ./*@domain.com/; do mv "$d" "${d%@*}"; done

引用自:https://unix.stackexchange.com/questions/696339