Bash:从./将所有目录的内容移动到各自的../

时间:2014-04-30 13:50:11

标签: linux bash shell command-line command

我有一个包含20个目录的列表,每个目录都有另一个目录,其中包含我需要的内容(即内容不必要地比它们需要的深一层),每个超级目录的名称彼此不同,他们的子目录与他们的父目录相同但没有" _100bp"后缀:

E.g。我有: directory_100bp/directory/<some content>

E.g。我需要: directory_100bp/<some content>

我知道我可以创建一个bash脚本来迭代每个目录:

mv ./directory/* ../

但是我有办法做一两行吗?我不介意在将内容向上移动一级后,空子目录是否仍然存在。

1 个答案:

答案 0 :(得分:1)

如果您的顶级目录名为mydir

find mydir -mindepth 1 -maxdepth 1 -type d -exec bash -c 'mv {}/* mydir; rm -ri {}' \;

这将提示您输入每个目录,您可以将-i标记更改为-f以强制删除而不提示。