如何将文件夹移动到自身中?

lef*_*out 2 directory mkdir

我有一个目录

foo/
   bar.txt
   baz.yzw
   wun/
      a.out
Run Code Online (Sandbox Code Playgroud)

现在,我想基本上在两者之间添加一个目录,即我想制作它

foo/
   var1/
      bar.txt
      baz.yzw
      wun/
         a.out
Run Code Online (Sandbox Code Playgroud)

还打算向 中添加其他内容foo,但与旧内容分开。

我当然可以这样做:

$ mkdir foo-new
$ mv foo foo-new
$ mv foo-new foo
Run Code Online (Sandbox Code Playgroud)

或者

$ cd foo
$ mkdir var1
$ mv $(ls | grep -v var1) var1
Run Code Online (Sandbox Code Playgroud)

但两者都显得不优雅且容易出错。

有没有更好的方法来做到这一点?

小智 6

您可以简单地创建 var1 目录,将 foo 中的所有文件/文件夹移动到 var1,最后将 var1 移动到 foo 中

    $ mkdir var1 
    $ mv foo/* var1
    $ mv var1 foo/
Run Code Online (Sandbox Code Playgroud)


Joh*_*ohn 5

$ cd foo
$ mkdir var1
$ mv * var1
Run Code Online (Sandbox Code Playgroud)

shell 和mv命令足够智能,不会尝试将 var1 目录移动到自身中。