用于将所有文件从子文件夹移动到父文件夹的Shell脚本

我在文件夹A中有很多文件夹。 我想将文件从所有这些文件夹移动到A

要么

我想从子文件夹中剪切所有文件并将其粘贴到父文件夹中。

怎么做?

转到A目录并运行

 find . -mindepth 2 -type f -print -exec mv {} . \; 

这意味着“查找此目录及其子目录中的所有文件,并使用目标目录执行mv。”找到将每个文件移动到当前目录的每个文件。

好吧,你可以创建一个文件,并将其命名为“cutme”(在终端类型nano cutme创建一个名为cutme的文件。要保存它,请按CTRL + X然后按ENTER键。)例如并在其中粘贴以下内容,假设:

  1. 您想以递归方式执行此操作(在这些子文件夹的子文件夹和子文件夹中)
  2. 您想跳过移动脚本文件
  3. 您有权移动该文件夹中的文件
  4. 文件名称中可能包含也可能不包含空格

find * -type f -print -not -type d -and -not -regex 'cutme' -exec mv {} .. \;

注意行内的名称cutme 。 它应该与您将运行的脚本相同。

创建文件并粘贴上面的行后,在与脚本相同的文件夹中运行以下命令:

chmod +x cutme 。 这将为您的新文件提供“可执行”标志,以便您可以像这样执行它: ./cutme