我有一个像这样的文件夹结构: 一个名为Photos的大型父文件夹。该文件夹包含900多个子文件夹,分别命名为a_000,a_001,a_002等。如何将文件从子文件夹移动到其父目录(unix,终端)
每个子文件夹都包含更多的子文件夹,名为dir_001,dir_002等。每个子文件夹都包含大量图片(具有唯一名称)。
我想将包含在a_xxx的子目录中的所有这些图片移动到a_xxx中。 (其中xxx可以是001,002等)
四处寻找类似的问题后,这是我想出了最接近的解决方案:
for file in *; do
if [ -d $file ]; then
cd $file; mv * ./; cd ..;
fi
done
另一种解决方案我正在做一个bash脚本:
#!/bin/bash
dir1="/path/to/photos/"
subs= `ls $dir1`
for i in $subs; do
mv $dir1/$i/*/* $dir1/$i/
done
不过,我错过了一些东西,你能帮忙吗?
(然后,它会很高兴地丢弃空dir_yyy,但此刻没有太大的问题)
或许你也应该问这在Unix LINIX SE,因为它是不是一个真正的编程问题,执行它。但作为一个提示,在每个a_xxx目录内部做一些事情,比如find。 -type f -exec mv \ {\}。 \;'可能是你在找什么 – infixed
嗨。我有900多个文件夹,但我不会为每个文件夹都做这件事。如果SO不是发布的地方,我很抱歉。就是在这里我找到了更相关的例子:[link1](http://stackoverflow.com/questions/23546294/copy-files-from-subfolders-to-the-nearest-parent-directory-in-unix)和[ link2](http://stackoverflow.com/questions/22228718/using-for-loop-to-move-files-from-subdirectories-to-parent-directories) – Mpampirina
确定关于'mv * ./;'部分?因为在我看来,需要两个点(用于父目录),比如'mv * ../;'也许 – arhak