【发布时间】:2019-02-05 17:49:23
【问题描述】:
这很简单,并且已被多次询问/回答,但当文件位于不同目录时却没有。我想做这个: Renaming part of a filename,但文件位于不同的子目录中。
这是我尝试过的:
for f in */*run?.t; do mv -i -- "$f" "${f//subset/subset5}"; done
但它也尝试重命名目录(因为子集也在目录名称中),然后由于找不到该目录名称而出错。我错过了什么?
这是一般目录结构:
Gene1_subset/
Gene1file_subset.run1.t
Gene1file_subset.run2.t
Gene2_subset/
Gene2file_subset.run1.t
Gene2file_subset.run2.t
这是我想要的:
Gene1_subset/
Gene1file_subset5.run1.t
Gene1file_subset5.run2.t
Gene2_subset/
Gene2file_subset5.run1.t
Gene2file_subset5.run2.t
但它也会尝试重命名目录,因此您会收到错误消息:
cannot move Gene1_subset/Gene1file_subset.run1 to Gene1_subset5/Gene1file_subset5.run1 : No such file or directory
【问题讨论】:
-
能否展示重命名前后的整个目录结构?