我在 / home / evaluation 中有一个名为 evaluation 的文件夹,其中包含以下文件夹:
如何重命名此文件夹中的每个文件,如下所示:
这是我到目前为止尝试过的:
Name
----
Domain Users_1234
但是不幸的是,它并不起作用。
答案 0 :(得分:2)
尝试一下:
for file in /home/evaluation/*
do
mv -i "$file" "$(dirname "$file")/Backup$(basename "$file")"
done
说明:dirname
获取目录名(例如dirname /home/evaluation/Geography
打印“ / home / evaluation”),而basename
获取不带路径的文件名(例如dirname /home/evaluation/Geography
打印“地理”)。所以
... "$(dirname "$file")/Backup$(basename "$file")"
--> "/home/evaluation" + "/Backup" + "Geography"
--> "/home/evaluation/BackupGeography"
(注意:+
不是shell运算符。至少,不是这样。我只是在说明它的解析方式。)
哦,如果名字冲突,mv -i
会问该怎么办。如果没有-i
,它将无声且不可逆地删除其中一个冲突文件。在没有mv
(或-i
)的情况下使用-n
进行批量移动总是让我感到紧张。
答案 1 :(得分:1)
你可以
for file in /home/evaluation/*
do
mv "$file" `dirname "$file"`/Backup`basename "$file"`
done