我正在尝试将子文件夹的内容移动到其父文件夹并删除现在为空的子文件夹。我希望这种情况发生在多个父文件夹中,每个父文件夹都有自己唯一的客户端名称。我已经截取了文件夹层次结构的屏幕截图,可以在此处查看>>>https://i.stack.imgur.com/Ve4Cj.png
每个 CLIENT 文件夹都有一个标记为“#msgs”的子文件夹,其中包含需要上移一个文件夹的内容。我是用笨拙的三步方式来做这件事的,如下所示:
cd /Users/SystemFive/Desktop/ROOT/PARENT\ DIRECTORY/CLIENT\ 1
mv \#msgs/* .
然后
find . -type d -name "#msgs" -exec rm -fvr "{}" \;
这对于我的项目来说非常麻烦,因为我需要为一百多个客户端文件夹执行此操作。我正在寻找创建某种 if/then 语句的方向,该语句可以通过每个客户端文件夹运行整个父目录并执行此操作。任何帮助表示赞赏。谢谢你!
答案1
find . -iname '#msgs' | perl -pe 's/(.*)(#msgs)/mv "$1$2\/*" "$1";\nrm -r "$1$2";/g' | bash
省略| bash
看看它会做什么