Find
如何從文件夾中刪除/重命名副檔名
我有幾個文件夾,例如 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