将文件夹内容上移一级

将文件夹内容上移一级

我有一个已解压的目录,但位于一个文件夹中。如何将内容上移一级?我通过 SSH 访问 CentOS。

答案1

对于名为“myfolder”的文件夹,如果文件层次结构中该文件夹向上一级(您希望它放置的点),则命令为:

mv myfolder/* .

例如,如果数据存在,/home/myuser/myfolder/home/myuser/运行命令。

答案2

只是为了说清楚,摘自鲁杜上面的回答和评论。

如果您需要移动所有内容,包括以 . (如 .htaccess、.git 等),您需要在命令中包含 * 和 .*。就像这样:

 mv subfolder/* subfolder/.* .

这会将子文件夹的内容移动到当前文件夹。注意最后一个“.”之前的空格。

答案3

这可以通过以下方法实现:

  • 使用rsync

    rsync -vua --delete-after foo/ .
    
  • 使用cprmdir

    cp -vaR foo/. . && rmdir foo/
    
  • 使用mvdotglob启用选项):

    shopt -s dotglob # Includes filenames beginning with a dot.
    mv -- foo/* .    # Where foo/ is the folder consisting the files.
    shopt -u dotglob # Disables previously enabled dotglob option.
    

    foo/您的文件夹的内容要上移一级。

    请参阅:help shoptman bash

  • 使用mv(按照建议这里):

    mv foo/* foo/.[^.]* . && rmdir foo/
    

    注意:它会丢失一个名为foo/..bar...

    注意:对于 POSIX shell,您需要[!.].

答案4

我有一个速记命令

cp */* .

这将复制所有子文件夹内容,当然您可以使用移动

mv */* .

或指定新的扩张

cp */* /destination 

相关内容