小编Pad*_*igD的帖子

将大量文件移动到日期结构化目录顺序中

我在这个目录中有大约 100 万个文件: /home/username/images/

每个文件的名称类似于:012345678910(Place)_0_20120414185957_28841.jpg文件名的时间戳部分在每张图片上都发生了变化。

下面的代码包含将文件排序/移动到此日期结构中的代码: /home/username/sorted/2012/04/14/18/name_of_file.jpg

对于一小部分文件它工作正常,但对于巨大的目录,我的腻子终端在输出后断开连接

Directory $newdir does not exist.  Creating same.
Run Code Online (Sandbox Code Playgroud)

我有其他代码总是随着错误代码而死亡argument list too long。

这是代码:

#!/bin/bash
ALLFILES=(images/*)
for ((i=0; i<${#ALLFILES[*]}; i+=30000));
do
    set $(echo "${ALLFILES[@]:i:30000}" | awk -F_ '{print $1, $2, $3, $4, $5}')
    fullyear=$3
    year=$(echo $fullyear |cut -c1-4)
    month=$(echo $fullyear |cut -c5-6)
    day=$(echo $fullyear |cut -c7-8)
    hour=$(echo $fullyear |cut -c9-10)
    newdir=$(echo /home/username/sorted/$year/$month/$day/$hour/)
    if ! [ -d $newdir ]; then
        echo Directory $newdir does not exist.  Creating same.
        mkdir -p $newdir; …
Run Code Online (Sandbox Code Playgroud)

shell-script rename files

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

files ×1

rename ×1

shell-script ×1