我有一个已解压的目录,但位于一个文件夹中。如何将内容上移一级?我通过 SSH 访问 CentOS。
答案1
对于名为“myfolder”的文件夹,如果文件层次结构中该文件夹向上一级(您希望它放置的点),则命令为:
mv myfolder/* .
例如,如果数据存在,/home/myuser/myfolder
则/home/myuser/
运行命令。
答案2
只是为了说清楚,摘自鲁杜上面的回答和评论。
如果您需要移动所有内容,包括以 . (如 .htaccess、.git 等),您需要在命令中包含 * 和 .*。就像这样:
mv subfolder/* subfolder/.* .
这会将子文件夹的内容移动到当前文件夹。注意最后一个“.”之前的空格。
答案3
这可以通过以下方法实现:
使用
rsync
:rsync -vua --delete-after foo/ .
使用
cp
和rmdir
: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 shopt
和man bash
。使用
mv
(按照建议这里):mv foo/* foo/.[^.]* . && rmdir foo/
注意:它会丢失一个名为
foo/..bar..
.注意:对于 POSIX shell,您需要
[!.]
.
答案4
我有一个速记命令
cp */* .
这将复制所有子文件夹内容,当然您可以使用移动
mv */* .
或指定新的扩张
cp */* /destination