我有几个文件夹,例如 [email protected]、[email protected]、[email protected]。我想将它们重命名为 name1、name2、name3 等。我发现如果它们反之亦然,即 name1、name2、name3 我可以通过运行将其移动到 [email protected]
find . -type d -name "*" -depth 1 | while read d; do mv "$d" "[email protected]"; done
但是我该如何做相反的事情?[email protected] ==> name1
使用诸如 Bash 之类的外壳:
for d in ./*@*/
循环遍历当前目录中名称包含“@”的所有目录。${d%@*}
是一个参数扩展,给出d
变量的值减去最后一个“@”以及后面的任何内容。您可以使其更具限制性,例如