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

如何借助tree命令输出在其他位置创建相同目录树结构?

当然可以!不管你是想用tree的输出来重建目录结构,还是直接从原目录生成结构(这种方式往往更稳定),都有靠谱的方法:

方法一:直接用find生成目录列表(推荐)

其实不用依赖tree的输出,直接用find命令提取原目录的所有目录结构会更稳妥——毕竟不同系统的tree输出格式可能略有差异,而find的输出更标准化:

  1. 先在原目录所在位置,导出所有目录的完整路径:
    find /path/to/your/source -type d -print > dir_list.txt
    
    这里-type d表示只筛选目录,-print会把每个目录的路径写入到dir_list.txt文件中。
  2. 切换到你想创建目录树的目标位置,执行以下命令批量创建目录:
    while read dir_path; do mkdir -p "$dir_path"; done < dir_list.txt
    
    mkdir -p是关键参数,它会自动创建所有嵌套的父目录,不会因为中间层级不存在而报错。

方法二:基于tree的输出重建目录

如果你手里已经有了tree的输出文件,先确保生成这个输出时加上-F参数(让目录名称末尾带上/,方便区分文件和目录):

tree -F /path/to/your/source -o tree_output.txt

然后用awk过滤出目录行,去掉tree输出自带的树形前缀符号(比如├、└、-这些),再批量创建目录:

awk '/\/$/ {sub(/^[│├└─ ]+/, ""); print}' tree_output.txt | xargs -I {} mkdir -p "/path/to/your/destination/{}"
  • /\/$/:只匹配行尾带有/的行(也就是目录)
  • sub(/^[│├└─ ]+/, ""):移除行首的树形符号,只保留纯目录路径
  • xargs -I {}:把处理后的每个目录路径作为参数,传给mkdir -p执行创建

小提醒

  • 如果原目录用的是相对路径,处理时要注意目标位置的相对关系,避免路径出错
  • mkdir -p很安全,即使目标目录已经存在也不会抛出错误

内容的提问来源于stack exchange,提问作者Roman Kaganovich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:03:01