我有一堆文件,它们的路径中包含一个重复的文件夹(在以下示例中bar
)。我想删除此目录并将包含的所有内容移至父目录中。以搜索和替换为例,我想在路径中用/foo/
替换。/
初始状态:
foo/bar/some_file.txt
foo/another_file.txt
quux/bar/yet_another_file.txt
目标:
foo/some_file.txt
foo/another_file.txt
quux/yet_another_file.txt
我倾向于使用 bash 来解决这个问题,但也愿意接受任何没有任何依赖关系并且可以在 Linux 上运行的解决方案。
如果这对偶然发现此帖子的人有帮助,那么Windows 的现有答案使用 robocopy。
答案1
我最终像这样解决了它:
for iteration_path in ${1}/*; do
if [[ ! -z $iteration_path ]]; then
mv "${iteration_path}"/bar/* "${iteration_path}";
rmdir "${iteration_path}"/bar;
fi
done
如果有人能进一步阐述 AFH 的建议参数扩展,如果这是一个更优雅的解决方案,我会感兴趣。