我发现了许多脚本,这些脚本将递归地压缩子目录的所有内容以及目录的子文件夹的子文件夹。但我只想平整一个级别并保持子文件夹完好无损。我怎么能用bash脚本来做呢?
答案 0 :(得分:2)
mkdir -p dir0/dir1/dirA/dirX
mkdir -p dir0/dir2/dirB/dirY
mkdir -p dir0/dir3/dirC/dirZ
让我们看看它现在如何:
tree dir0
返回:
dir0/
├── dir1
│ └── dirA
│ └── dirX
├── dir2
│ └── dirB
│ └── dirY
└── dir3
└── dirC
└── dirZ
现在让我们运行
find dir0 -mindepth 2 -maxdepth 2 -exec mv -i '{}' dir0 ';'
让我们看看dir0现在如何:
tree dir0
结果:
dir0
├── dir1
├── dir2
├── dir3
├── dirA
│ └── dirX
├── dirB
│ └── dirY
└── dirC
└── dirZ
Ps:你也可以运行这样的东西:
mv dir0/*/* dir0
答案 1 :(得分:2)
mv */* .
如果您不关心隐藏目录,那就简单了。
答案 2 :(得分:0)
这个怎么样?
array=($(ls))
for i in "${array[@]}"
do
echo $i
if [ -d $i ]; then
cd $i
ls
cd ..
fi
done
获取每个第一级子目录的ls输出以及顶级的所有内容。