我有一个包含20个目录的列表,每个目录都有另一个目录,其中包含我需要的内容(即内容不必要地比它们需要的深一层),每个超级目录的名称彼此不同,他们的子目录与他们的父目录相同但没有" _100bp"后缀:
E.g。我有: directory_100bp/directory/<some content>
E.g。我需要: directory_100bp/<some content>
我知道我可以创建一个bash脚本来迭代每个目录:
mv ./directory/* ../
但是我有办法做一两行吗?我不介意在将内容向上移动一级后,空子目录是否仍然存在。
答案 0 :(得分:1)
如果您的顶级目录名为mydir
:
find mydir -mindepth 1 -maxdepth 1 -type d -exec bash -c 'mv {}/* mydir; rm -ri {}' \;
这将提示您输入每个目录,您可以将-i
标记更改为-f
以强制删除而不提示。