Answers:
使用名为“ myfolder”的文件夹并在文件层次结构中上一层(您要放置的位置),该命令将为:
mv myfolder/* .
因此,例如,如果数据在其中,/home/myuser/myfolder
则从/home/myuser/
命令运行。
.*
。删除原始文件夹既琐碎又没有要求,因此我们让OP亲自处理。
*
和.*
在同一行?只是好奇心
mv
除了LAST参数外,所有参数都将是源,而LAST参数则需要作为移动目标(对于多个源,则需要是一个文件夹)。
/bin/mv: Argument list too long
可以通过以下方法实现:
使用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,您需要[!.]
。
-v
,-u
,-a
并-r
在做什么?AFAICT -v
非常冗长,这只会使rsync打印更多信息。-u
表示更新-仅复制较新的文件。那似乎无关紧要。-a
表示存档。这将复制文件的所有者和权限,并使同步递归。-r
表示递归,但是已经被覆盖了-a
。
-u
当您不想花费额外的时间移动已经存在的数据时(特别是对于慢速存储设备),此功能非常有用。我已删除了-r
,因为它已-a
如您所述被覆盖。
mv foo/* foo/.[^.]* .
例如会丢失一个名为的文件foo/..bar..
。请注意,对于POSIX shell,您需要[!.]
。
rsync -vua --delete-after foo/ .
会删除当前目录中可能已经存在的所有其他内容。
只是发出一个mv命令
mv (directory)/* .
如果要删除目录,请添加
rm -rf (directory)
假设您位于(directory)的父目录中
如果您位于(目录)中,则
mv * ../
.DS_store
macOS中无处不在。mv
上面的命令不会移动这些命令(未dotglob
设置)。
对于共享服务器上的这些人,您必须使用类似的内容
移动文件
mv -v ~/public_html/public_html/* ~/public_html/
复制文件
cp -a ~/public_html/public_html/* ~/public_html/
.*
不仅是*
存档包含点文件。还要在末尾添加`&& rmdir myfolder`以删除现在无关的文件夹。这样可以节省时间,因为它仅在mv返回成功时运行,并且因为rmdir不会删除非空目录。