【问题标题】:Mac Terminal command move files from subdirectory to parentMac终端命令将文件从子目录移动到父目录
【发布时间】:2026-02-21 14:05:01
【问题描述】:

在我的 Mac 上,我试图从带有大量子目录(可能还有其中的目录)的父目录移动 NAS 驱动器上的数百个文件,并将所有文件放入一个文件夹中。 它们对所有文件都没有相同的文件扩展名。

是否有人可以帮助我执行此操作所需的终端命令?到目前为止,我知道 find 。 -type f 将列出目录和子目录中的所有文件,但我不确定如何告诉它让它们将它们全部移动到另一个文件夹中。

【问题讨论】:

  • 您需要更具体地了解您想要什么。这个网站是关于编程的,需求捕获是这个过程的一部分。
  • 不太确定您希望我如何更具体,因为我所说的非常不言自明-我想知道我需要在终端中输入哪些命令才能将我的所有文件从文件夹和子文件夹并放入另一个文件夹,因此我的所有文件都列在一个文件夹中。我认为终端命令是一种编程形式,所以如果不是,我深表歉意,我向错误的人寻求帮助。
  • 好吧,您说文件不必具有相同的文件扩展名。那么他们需要什么文件扩展名呢?
  • 是的,因为我需要像 '.' 这样的通用代码,而不是像 '.*jpg' 这样的特定扩展名,因为并非所有这些都是我需要移动的图像文件。
  • 您一定对计算机不知道您想要什么感到沮丧。我想这就是你问这个问题的原因。不幸的是,计算机和我们在较小程度上需要细节。

标签: macos terminal


【解决方案1】:

对于可能遇到同样问题的其他人: 我设法只提取 .jpg 并将它们放在父文件夹中。

find . -type f -iname '*.jpg' -mindepth 2 -print0 | xargs -0 -I{} mv -n '{}' .

不是我想要的——如果可能的话,我希望获取每个文件并将其放入一个完全不同的文件夹中,但这让我比以前更进一步。

【讨论】:

  • 你的问题是说你想把它们都放在一个文件夹里,现在你说你想把它们放在一个完全不同的文件夹里?与什么不同?
  • 天哪,我知道我不擅长解释事情,但我没有意识到我有那么糟糕。我有一个文件夹 - A 里面有很多子文件夹。我想要文件夹 A 和子文件夹中的所有文件进入文件夹 B。我想说我已经把它们从子文件夹中取出并放入父文件夹 A但我不知道如何使用命令行将它们移动到文件夹 B。
  • 如果要将FolderA中的所有文件移动到FolderB,请先备份,然后执行mv FolderA/* FolderB或等效cd FolderA; mv * FolderB
  • 非常感谢,我会试试的。 :)
【解决方案2】:

进入源父目录并使用:

find . -type f -exec mv "$PWD"/{} <destination directory> \;

如果要将所有文件移动到父目录本身,请将其用作目标目录。

【讨论】: