我想知道如何使用命令行将所有文件从一个文件夹移动到另一个文件夹。
假设我在我的 Downloads 文件夹中,有 100 个文件我想移动到我的 Videos 文件夹中,而不必写下所有文件名。
Anw*_*war 468
打开终端并执行以下命令:
mv -v ~/Downloads/* ~/Videos/
Run Code Online (Sandbox Code Playgroud)
它将所有文件和文件夹从下载文件夹移动到视频文件夹。
要移动所有文件,但不移动文件夹:
如果您有兴趣将所有文件(但不是文件夹)从 Downloads 文件夹移动到 Videos 文件夹,请使用此命令
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
Run Code Online (Sandbox Code Playgroud)
仅移动下载文件夹中的文件,而不移动子文件夹中的文件:
如果要移动 Downloads 文件夹中的所有文件,但不移动 Download 文件夹中文件夹中的任何文件,请使用以下命令:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
Run Code Online (Sandbox Code Playgroud)
在这里,-maxdepth
选项指定了 find 应该尝试的深度,1
意味着,只有在 find 命令中指定的目录。您可以尝试使用2
,3
也进行测试。
有关详细说明,请参阅 Ubuntu find 联机帮助页
小智 39
mv ~/Downloads/* ~/Videos
Run Code Online (Sandbox Code Playgroud)
它将移动所有文件,包括您想要移动的目录中的子文件夹mv
。如果您想cp
(复制)或rm
(删除)您将需要-r
(递归)选项来包含子文件夹。
Hon*_*nte 30
对于简单的情况:
mv ~/Downloads/* ~/Videos
Run Code Online (Sandbox Code Playgroud)
如果您也想移动点(隐藏)文件,请设置dotglob shell 选项。
shopt -s dotglob
mv ~/Downloads/* ~/Videos
Run Code Online (Sandbox Code Playgroud)
这将保留 shell 选项设置。
使用一次 dotglob,在子 shell 中运行命令:
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 19
可以通过使用rsync
,例如:
rsync -vau --remove-source-files src/ dst/
Run Code Online (Sandbox Code Playgroud)
在哪里:
-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
子文件夹,并将其中包含的所有文件移动到 Videos 文件夹。
小智 6
mv source_path/* destination_path/
Run Code Online (Sandbox Code Playgroud)
在这里,您必须在*
源路径后面加上斜杠,以便它将采用 source_path 中的文件而不是完整的源目录。
例子:mv /home/username/test/* /home/username/test2/
上面的命令将源目录中的所有文件(除非它们是隐藏的)移动到目标目录。
小智 5
使用
mv -v ~/rootfolder/branch/* ~/rootfolder
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。因为我也有同样的痛苦,并且浪费了很多时间来纠正我的错误。
归档时间: |
|
查看次数: |
1468786 次 |
最近记录: |