代码之家  ›  专栏  ›  技术社区  ›  Jakob Stoeck

在bash中交换两个文件夹名

  •  0
  • Jakob Stoeck  · 技术社区  · 14 年前

    $ mv a{,-alt-tmp}
    $ mv a{-alt,}
    $ mv a-alt{-tmp,}
    

    $ mv a{,-old} && mv a{-new,}
    

    但这不适用于真正的名称交换,因为一个文件夹后面有另一个名称。

    2 回复  |  直到 14 年前
        1
  •  2
  •   a'r    14 年前

    我不确定你是否可以原子化地完成这个任务,但是三次调用 mv

    function altdir { mv $1 $1-alttmp; mv $1-alt $1; mv $1-alttmp $1-alt; }
    

    小心,就像在a/目录中有一个打开的文件句柄一样,在移动句柄之后,句柄将指向现在位于a-alt/目录中的文件。

        2
  •  2
  •   foobar    14 年前

    理想情况下,您可以设置符号链接,以便快速交换。