我有一个大型的n级目录,结构如下:
root
|
subdir1
|
sub_subdir1
|
....(n-2 levels).....
|
file1
|
subdir2
|
sub_subdir2
|
....(n-2 levels).....
|
file2
我想展平目录,以便所有1级子目录都包含文件。我还想删除(n-1)sub_subdirs的级别2,因为它们不包含任何文件。请注意,所有子目录都有不同的名称。
所需结果
root
|
subdir1
|
file1
|
subdir2
|
file2
我发现有很多文章解释了扁平化目录的方法,但是没有任何一篇文章解释如何以受控方式进行此操作,即
使用zsh:
cd /root
for subdir in subdir*
do
mv "$subdir"/**/*(.) "$subdir"
rm -r "$subdir"/*(/)
done
这:
subdir*
(同样从您的示例中:匹配subdir1和subdir1)**
递归globing功能,然后受glob限定符的限制,该限定符*(.)
表示:此目录中的任何条目都是纯文件*(/)
,该限定符表示匹配作为目录的条目。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句