如何仅复制目录下的文件夹(不含文件、子目录)到另一位置
可行的一行式实现方案
方案1:基于find实现(兼容性、稳定性最优,支持带空格/特殊字符的目录名)
命令:
find /path/to/original/directory -maxdepth 1 -type d -printf "%f\0" | xargs -0 -I {} mkdir -p /path/to/target/directory/{}
参数说明:
-maxdepth 1:仅扫描原目录的第一层内容,不会递归进入子目录-type d:仅筛选目录类型的结果,排除普通文件-printf "%f\0":仅输出目录本身的名称(不包含父级路径),用空字符分隔结果,避免目录名含空格/特殊字符时解析出错xargs -0:按空字符分割接收的输入mkdir -p:目标目录已存在时不会抛出错误,无需额外处理冲突场景
方案2:基于通配符实现(写法更简短,适合无特殊字符目录名的场景)
如果你的Shell支持通配符匹配,也可以用更短的写法:
cd /path/to/original/directory && ls -d */ | xargs -I {} mkdir -p /path/to/target/directory/{}
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

