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

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

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

或者

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

怎么做?

答案1

转到你的A目录并运行

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

意思是“找到此目录及其子目录中的所有文件,并对目标目录执行 mv 。对找到的每个文件执行移动操作,将其移动到当前目录。

答案2

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

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

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

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

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

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

相关内容