首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动新目录中的每500个文件

移动新目录中的每500个文件
EN

Unix & Linux用户
提问于 2020-11-26 22:02:37
回答 1查看 221关注 0票数 -2

我有一个目录,其中包含10,665个jpeg文件。

我希望将500个文件移动到一个新目录,将500个文件移动到下一个目录,等等。

必须首先移动最大的文件: 500-1包含最大的500个文件,500-2包含下一个最大的500个文件,等等。

我想这样做的原因是,我想把JPEG交给某个人,而文件管理器挂起,因为一个目录中有这么多。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-11-28 14:50:46

在基于Linux的系统上或使用GNU find的其他系统上,您可以使用这样的循环

代码语言:javascript
复制
find -maxdepth 1 -type f -printf '%s\t%P\0' |
    sort -z -rn |
    (
        # x is max files per directory; d is directory number; k is file counter
        x=500 d=1 k=1
        while IFS=当您确信echo '##'将执行您希望它们做的事情时,请从循环中的两个动作行中删除它们。如果您不需要一份状态报告的话,请注释掉printf。\t' read -r -d '' size path
        do
            printf "%d\t%d\t%s\n" $k $d "$path"    # File nr, Directory nr, Filename
            echo "##" mkdir -p "/path/to/dir-$d"
            echo "##" mv -f "$path" "/path/to/dir-$d/${path##*/}"

            [[ $((k++)) -ge $x ]] && { k=1; ((d++)); }    # Next directory
        done
    )

当您确信D2将执行您希望它们做的事情时,请从循环中的两个动作行中删除它们。如果您不需要一份状态报告的话,请注释掉D3

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/621712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档