我的文件夹结构如下:
Photos
|
|---> 2015-08-23
|
|---> IMG_0019.JPG // keep
IMG_0019.JPG.json // toss
IMG_0020.JPG // keep
IMG_0020.JPG.json // toss
IMG_0021.JPG // keep
IMG_0021.JPG.json // toss
metadata.json // toss
2015-08-24
|
|---> IMG_0242.MP4 // keep
IMG_0242.MP4.json // toss
metadata.json // toss
2015-08-25
|
|---> IMG_0243.MOV // keep
IMG_0243.MOV.json // toss
IMG_0243(1).MOV // keep
IMG_0243(1).MOV.json // toss
IMG_0244.PNG // keep
IMG_0019.PNG.json // toss
metadata.json // toss
这种情况一直持续下去。我的目标是最终得到像这样的文件夹结构
Photos
|
|--> IMG_0019.JPG
IMG_0020.JPG
IMG_0021.JPG
IMG_0242.MP4
IMG_0243.MOV
IMG_0243(1).MOV
IMG_0244.PNG
...
我正在考虑做一个修改版本文章 我将循环遍历每个目录并执行正则表达式以仅获取有价值的文件。就像是:
// get a list of all directories
// loop through directories
// get all contents in directory
// loop through all contents in directory
// determine if file is of value (ie. MP4, PNG, MOV, JPG, etc.)
// move selected file out to parent directory
// remove directory
任何帮助,将不胜感激
答案1
从预期结果的结构来看,您只想保留不以.json
.这将做到这一点:
cd Photos
find . -type f ! -name *.json -exec mv {} . \; && rm -rf 2015*
在 Photos 目录中,您找到不以 结尾的文件.json
,将它们移动到.
当前目录中,然后删除子目录和其中不需要的文件。您还可以使用rm -ri 2015*
它,以便它会在删除每个目录之前提示您,或者单独运行find
和rm
命令,以防您在删除其余文件及其目录之前改变主意。