答案1
尝试做这样的事情,
for d in ${PATH_OF_YOUR_DIRECTORY}/*/ ; do
mv ${d}index.html ${PATH_WHERE_YOU_HAVE_TO_MOVE}/$(basename ${d}).html
done
答案2
从问题中并不清楚如何这些文件应该被重命名,所以我假设应该通过将原始目录的名称附加到它们的原始名称来重命名它们。
下面的代码假设您的工作目录包含子目录,并且每个子目录都有该index.html
文件,如问题所示。这些index.html
文件将被移动到一个名为 的新目录allfiles
。
mkdir allfiles || exit
for pathname in */index.html
do
mv -- "$pathname" "allfiles/${pathname%/index.html}-index.html"
done
该pathname
变量将保存类似 的路径名A-Dwelling-Place/index.html
,并且参数扩展将从该路径名的末尾${pathname%/index.html}
删除该位。/index.html
您可以改为迭代目录而不是文件,
mkdir allfiles || exit
for dirname in */
do
mv -- "$dirname"/index.html "${dirname%/}-index.html"
done
在这种情况下,dirname
变量将保存诸如A-Dwelling-Place/
, 之类的路径名,${dirname%/}
并将删除结尾的斜杠字符。