递归地将文件从子目录移动到新文件夹(除jsons之外的所有文件[jpg / png / ...])

DS

我有一个文件夹Google Photos。这是来自Google照片外卖的。外卖的工作方式是有多个带有日期名称的文件夹

➜  ~/Google Photos => tree |head -n 20     
.
├── 1979-12-31
│   ├── icon-24x24.png
│   ├── icon-24x24.png.json
│   ├── icon_local_color.png
│   ├── icon_local_color.png.json
│   ├── metadata.json
│   ├── viewer-14.png
│   ├── viewer-14.png.json
│   ├── viewer-28.png
│   └── viewer-28.png.json
├── 2001-07-24
│   ├── heic0109a.jpg
│   ├── heic0109a.jpg.json
│   └── metadata.json
├── 2003-01-06
│   ├── ASPdotNET_logo.jpg
│   ├── ASPdotNET_logo.jpg.json
│   ├── darkBlue_GRAD.jpg
│   ├── darkBlue_GRAD.jpg.json

我想将所有不以json结尾的文件移动到名为的新文件夹中./all_photos问题是我的文件夹中可能有两个名称相同的文件。

例如,在文件夹中,1979-12-31我可能有一个名为的文件a.jpg,在文件夹中,2001-07-24我也可能有另一个名为的文件a.jpg我看过的解决方案是移动文件,但是如果有潜在的覆盖,则覆盖或跳过。我想更改文件名,如下所示:1979-12-31_a.jpg2001-07-24_a.jpg这将确保不存在任何具有相同名称的文件,因此不会被覆盖。

我在Linux服务器上,我想最好的方法是通过Linux find命令,但是我不确定确切的命令,因此需要帮助。

DS

我写来解决该问题的脚本。可能不是最有效的方法,但是如果有更有效的方法,请告诉我。接受一个参数-您要为其应用脚本的文件夹名称。在上面的示例中,我将运行./script.sh Google\ Photos适用于2级子文件夹。

#!/bin/bash
shopt -s extglob
for x in `ls $1` 
do
    for y in $1/$x/!(*.json)
    do
        a=${y#"$1/$x/"}
        mv $y "$1/$x-$a"
    done
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于将所有* .512.png移至新文件夹的脚本

Bash脚本将文件夹及其子文件夹中的所有png文件移动到另一个目录?

批量将png转换为jpg并将图像输出到新文件夹imagemagick

复制目录中的所有文件和文件夹,除了 python 中的 .jpg 和 .png 文件

如何将文件夹中的所有 PNG 转换为 JPG 以制作视频?

查找当前目录及其子目录中所有扩展名为 .png 的文件

批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

如何使用Java代码将文件夹(包括子目录和文件)移动到新文件夹中

从Python目录中转换所有文件(.jpg到.png)

将所有在<time>之后修改的文件夹移动到新文件夹

Bash / Shell将所有文件从子目录移动到目标目录?

将所有文件从子目录移动到父目录

将文件夹中的所有png文件转换为视频

如何使用linux命令将jpg文件转换为png文件?+难度=子文件夹

遍历文件夹/子目录并将找到的正则表达式文件移动到新文件夹中

无法将所有文件移动到新文件夹

Shell脚本:按当前日期创建文件夹,然后将.png文件移动到该子文件夹中

遍历文件夹并将png转换为jpg

如何将子目录中的所有文件递归移动到单个目录?

如何使用bash将子文件夹中的所有文件移动到新文件夹中?

如何将所有子目录移动到bash中的父文件夹中?

.png和.jpg文件的解密

将所有具有相同名称的文件从子目录移动到一个目录中

Grunt 将 .png 转换为 .jpg 文件

将 .dat 文件转换为 .jpg 或 .png

Shell脚本将所有文件从子文件夹移动到父文件夹

如何列出除扩展名[jpg,png,mkv等]以外的所有文件?[BASH通配符]

ImageMagick批量将子目录中的所有PNG转换为JPEG

从PHP显示PNG文件