Answers:
打开一个终端并执行以下命令:
mv -v ~/Downloads/* ~/Videos/
它将所有文件和文件夹从“下载”文件夹移动到“视频”文件夹。
要移动所有文件,但不能移动文件夹:
如果您有兴趣将所有文件(而非文件夹)从“下载”文件夹移动到“视频”文件夹,请使用此命令
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
要仅移动“下载”文件夹中的文件,而不移动子文件夹中的文件,请执行以下操作:
如果要移动“下载”文件夹中的所有文件,而不是“下载”文件夹中文件夹中的任何文件,请使用以下命令:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
在这里,-maxdepth
option指定了find应该尝试的深度,1
即仅find命令中指定的目录。您可以尝试使用2
,3
也可以进行测试。
有关详细说明,请参见Ubuntu 查找手册页。
-print0 | xargs -0 mv -t ~/Videos
可以使用-exec mv -t ~/Videos \{\} \+
:-) 来更有效地完成工作
mv -v ~/Downloads/* ~/Videos/
不适用于隐藏文件
mv ~/Downloads/* ~/Videos
它将移动所有文件(包括子文件夹)到您想要的目录中mv
。如果要cp
(复制)或rm
(删除),则需要-r
(递归)选项包括子文件夹。
mv
不需要递归选项来包含子文件夹。也可以将其用于重命名。
对于简单的情况:
mv ~/Downloads/* ~/Videos
如果您也要移动点(隐藏)文件,请设置dotglob shell选项。
shopt -s dotglob
mv ~/Downloads/* ~/Videos
这将保留shell选项集。
要使用dotglob一次,请在子外壳程序中运行以下命令:
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
仅移动(剪切)内容(包括隐藏的文件)。在这种情况下,原始文件夹和目标文件夹都必须已经存在。最后,原始目录变为空。
可以使用rsync
,例如:
rsync -vau --remove-source-files src/ dst/
哪里:
-v
,--verbose
:增加详细程度。
-a
,--archive
:存档模式;等于-rlptgoD
(无-H
,-A
,-X
)。
-u
,--update
:跳过接收方上较新的文件。
--remove-source-files
这告诉rsync
从发送方删除文件(即非目录),这些文件是传输的一部分,并且已在接收方成功复制。
如果您具有root权限,请在前面加上前缀sudo
以覆盖潜在的权限问题。
要将包含或不包含内容的目录移动到新名称,就像使用mv
命令重命名文件的方式一样:
mv -T dir1 dir2
哪里:
-T
将目标视为普通文件dir1
是目录的原始名称dir2
是目录的新名称注意:dir2
不必存在。
我希望这可以为某人节省很多时间,作为一个菜鸟,在此之前,我将使用新名称创建目录,然后将目录的内容移至之前创建的目录。
用于子目录
当许多文件已保存在目标目录的子文件夹中时,此命令很有用Downloads/mp4
。在此示例中,运行mv -T Downloads/mp4 Videos
将导致mp4
子文件夹被删除,并且其中包含的所有文件都将移至“视频”文件夹。
dir1
删除。除了这种预防措施,该答案还指出了一些日常使用的好处。
mv fileA fileB
但是-T
在这种情况下,标志会将目标/目录视为文件并重命名。
试试吧
find ~/Desktop -type f -iname "*.mp4" -exec mv {} ~/Videos \;
-type 与参数-type一起可以指定类型file。在此语句上是平均文件。如果使用-d表示目录。
-iname: 查找文件的最常见,最明显的方法是使用-name参数。如果不确定文件是否区分大小写,则可以使用-iname参数
mv {} ,最后指定目标目录,然后使用mv {}参数将文件移动到该目录
files
,但人们向你展示如何不仅移动files
,但folders
也。这可以吗?