【发布时间】:2015-09-02 15:06:36
【问题描述】:
我想知道关注
假设您在 linux dir1 和 dir2 中有两个目录。现在当我这样做时
mv dir1 dir2
然后 dir1 被移动到 dir2。
但是如果我想将 dir1 重命名为 dir2 怎么办?虽然 dir2 已经存在,让 bash 告诉我并问我是否希望覆盖?或者只是告诉我它已经存在不能重命名?
有什么办法吗?
【问题讨论】:
标签: linux bash command-line mv
我想知道关注
假设您在 linux dir1 和 dir2 中有两个目录。现在当我这样做时
mv dir1 dir2
然后 dir1 被移动到 dir2。
但是如果我想将 dir1 重命名为 dir2 怎么办?虽然 dir2 已经存在,让 bash 告诉我并问我是否希望覆盖?或者只是告诉我它已经存在不能重命名?
有什么办法吗?
【问题讨论】:
标签: linux bash command-line mv
您可以做的是,使用i 和T 选项。
T 会将目标视为普通文件,因此如果目标目录存在,则不会“移入”; i 会让你确认。在您的情况下,它将是:
mv -iT dir1 dir2
如果dir2 不存在,则不会显示确认消息。
注意,如果target dir2不为空,即使你确认了也不能mv。
如果你想覆盖,你需要写一个小函数/脚本来做。
【讨论】:
mv dir1/* dir2 之类的操作,然后重命名 dir2 -> dir1。当然,如果有必要,你必须处理现有的子目录。
如果您将mv 与选项i 一起使用,它会提示并检查您是否愿意覆盖现有目录(如果存在)。
如果dir1 和dir2 存在并且你尝试如下它会提示你。如果 dir2 不存在则不会提示。
mv -i dir1 dir2
【讨论】: