You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何递归移动嵌套文件,修复app目录的多层嵌套结构

恢复嵌套的app目录结构到预期层级

问题描述

原本预期的app目录结构为:

app
├── export
│   ├── some-unique-filename
│   ├── another-unique-filename
│   └── ...
└── import
    ├── some-unique-filename
    ├── another-unique-filename
    └── ...

但因rsync脚本错误,导致app目录被多次复制到自身内部,形成多层嵌套结构:

app
├── app
│   ├── app
│   │   └── ... etc. 
│   ├── export
│   │   └── another-unique-filename
│   └── import
│       └── another-unique-filename
├── export
│   └── some-unique-filename
└── import
    └── some-unique-filename

需要将嵌套结构恢复为仅一层的预期结构。

解决方案

1. 备份目录(必备步骤)

操作前务必备份整个app目录,防止数据丢失:

cp -a app app_backup

2. 移动嵌套目录中的文件到顶层对应目录

使用find命令遍历所有嵌套app子目录下的export/import文件,将它们移动到顶层app的export和import目录中(-n参数避免意外覆盖文件):

# 移动所有嵌套app下export目录的文件到顶层export
find app -type f -path "*/app/export/*" -exec mv -n {} app/export/ \;

# 移动所有嵌套app下import目录的文件到顶层import
find app -type f -path "*/app/import/*" -exec mv -n {} app/import/ \;

提示:可以先将命令中的-exec mv -n {} app/export/ \;替换为-print,先查看要移动的文件列表,确认无误后再执行移动操作。

3. 删除所有嵌套的app子目录

使用find命令从最深层级开始删除所有嵌套的app子目录(-depth参数确保先删除深层目录,避免父目录已被删除导致的错误):

find app -type d -name "app" -depth -exec rm -rf {} \;

提示:同样可以先将-exec rm -rf {} \;替换为-print,查看要删除的目录列表,确认不会误删顶层app目录后再执行删除。

4. 验证结果

执行tree app命令查看目录结构,确认已恢复为预期的单层结构。

内容的提问来源于stack exchange,提问作者Marc Bush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 01:26:10