【问题标题】:move every file from every folder to specific folder将每个文件从每个文件夹移动到特定文件夹
【发布时间】:2021-10-16 14:28:08
【问题描述】:

我正在尝试编写 shell 脚本来运行它..

我猜它需要语法或查找语法.. 但我一直在处理扫描每个文件夹..

我尝试过使用 "find" -maxdepth 1 -name "*.jpg | mv " 但失败了...

  • 对于每个目录中的每个 jpg 文件(文件夹 1、文件夹 2、文件夹 3...文件夹 5...等)
  • 将文件移动到作为父目录的目标目录。
  • 如果文件名重复,请移至 dup 目录。

DIR tree looks like this

【问题讨论】:

    标签: shell


    【解决方案1】:

    类似

    for f in folder*/*.jpg; do
        if [ -e "$(basename "$f")" ]; then
            mv "$f" dup/
        else
            mv "$f" .
        fi
    done
    

    从父目录运行。只需遍历文件夹子目录中的每个 jpg,移动到一个或另一个位置,具体取决于具有该名称的文件是否已存在。


    效率稍高的bash版本:

    for f in folder*/*.jpg; do
        if [[ -e ${f##*/} ]]; then
            mv "$f" dup/
        else
            mv "$f" .
        fi
    done
    

    【讨论】:

    • 如果我想添加 .jpg 或 *.png 怎么办?对于文件夹中的 f*/.jpg ||文件夹*/*.png ;做这样的事情?
    • 否||,但基本上是的。或者使用 bash,扩展 glob。
    猜你喜欢
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2022-07-17
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多