【发布时间】:2014-09-27 02:10:08
【问题描述】:
我编写了以下脚本来重命名当前目录的所有文件夹中的所有文件。但我遇到了问题,因为它不仅重命名文件夹中的文件,而且还重命名当前目录中的所有文件夹和层次结构中的父目录。我意识到这是因为 .和 .. 存在于当前目录中。但是如何摆脱它们呢?
for i in *
do
cd $i
for j in *
do
mv $j $i$j
done
cd ..
done
问题是,我有很多文件夹,它们包含命名为 image0001 到 image0100 的图像。我想将所有图像复制到一个文件夹中。所以他们正在互相覆盖。这就是我要重命名图像的原因。
【问题讨论】:
-
我认为 bash 不会扩展
.和..你确定你使用的是bash吗? (echo $BASH_VERSION);dotglob是否启用?shopt dotglob -
另外,请添加有关您希望如何重命名文件的更多详细信息。
-
@konsolebox 我在问题中添加了更多细节。并且 dotglob 已关闭。同样在回显 $BASH_VERSION 时,我得到 4.2.25(1)
-
你可以检查它是否是一个目录。例如:
man test -
不仅仅是
bash; POSIX standard 禁止*匹配初始.。
标签: bash