it-swarm.cn

将文件夹内容上移一级

我有一个解压缩的目录,但是在一个文件夹中。如何将内容上移?我正在通过SSH访问CentOS。

143
whatshakin

使用名为“ myfolder”的文件夹并在文件层次结构中上一层(您要放置的位置),命令将为:

mv myfolder/* .

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

212
Rudu

只是为了使内容清晰易懂,摘自Rudu的上述答案和评论。

如果您需要移动所有内容,则包括以开头的文件。 (例如.htaccess,.git等),您需要在命令中同时包含*和。*。像这样:

 mv subfolder/* subfolder/.* .

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

29
Richard

可以通过以下方法实现:

  • 使用rsync

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

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

    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,您需要[!.]

16
kenorb

只是发出一个mv命令

mv (directory)/* .

如果要删除目录,请添加

rm -rf (directory)

假设您位于(directory)的父目录中

如果您位于(目录)中,则

mv * ../
7
Ranjith Siji

我有一个简捷的命令

cp */* .

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

mv */* .

或分配新的区分

cp */* /destination 
1
Mohammed Omer

对于共享服务器上的这些人,您必须使用类似的内容

移动文件

mv -v ~/public_html/public_html/* ~/public_html/

复制文件

cp -a ~/public_html/public_html/* ~/public_html/

0
Ricardo Havoc