Unix 如何用子目录替换目录?

Unix 如何用子目录替换目录?,unix,command-line,zsh,Unix,Command Line,Zsh,如果我有一个如下所示的目录树: parent/ child/ many files parent/ many files 我应该使用什么命令/命令快速使其成为这样: parent/ child/ many files parent/ many files 实际上,我只想删除一级文件夹嵌套。我不关心当前父级中的任何其他文件。这就是您要做的: cd parent mv child/* . rmdir child 如果在子目录中有以(点)开头的

如果我有一个如下所示的目录树:

parent/
   child/
      many files
parent/
   many files
我应该使用什么命令/命令快速使其成为这样:

parent/
   child/
      many files
parent/
   many files
实际上,我只想删除一级文件夹嵌套。我不关心当前父级中的任何其他文件。

这就是您要做的:

cd parent
mv child/* .
rmdir child
如果在
子目录中有以
(点)开头的文件,则必须执行以下操作

shopt -s dotglob
为了使
*
匹配它们(有其他方法强制执行此操作,但设置
dotglob
最简单)

如果
child/
包含名为
child
的文件或目录,则必须在
mv
操作之前重命名该文件或目录
parent/child

这是怎么回事

mkdir new
find parent -type f -exec mv {} new/. \;

这将适用于任何深度的目录。

这也将移动父目录的直接子目录。
,这是不需要的。它还将扁平化整个目录结构,这不是要求的(可能是有意的,也可能不是有意的)。此外,asker希望将文件移动到
parent/
而不是
new/