基本上,我的硬盘崩溃了,我能够恢复所有文件,但是,所有文件保留了它们的元数据和一些保留了它们的名称,我有274000张图片,我需要将它们或多或少地按日期分类到文件夹中。
所以假设从第一个文件开始,它会从文件中获取日期,创建一个子文件夹,并在日期发生变化之前不断将该文件移动到创建的文件夹中,一旦日期发生变化,它会创建一个新文件夹并继续执行相同的操作。
我相信这是可能的,我真的不想手动执行此操作,因为这需要几个星期...
假设我有一个目标文件夹/target/。
目标包含274000个文件,没有任何子文件夹。
文件夹结构应为 /target/YY/DD_MM/filenames。
我想为此创建一个bash脚本,但我真的不确定该从哪里开始。
我找到了这个:
所以假设从第一个文件开始,它会从文件中获取日期,创建一个子文件夹,并在日期发生变化之前不断将该文件移动到创建的文件夹中,一旦日期发生变化,它会创建一个新文件夹并继续执行相同的操作。
我相信这是可能的,我真的不想手动执行此操作,因为这需要几个星期...
假设我有一个目标文件夹/target/。
目标包含274000个文件,没有任何子文件夹。
文件夹结构应为 /target/YY/DD_MM/filenames。
我想为此创建一个bash脚本,但我真的不确定该从哪里开始。
我找到了这个:
#!/bin/bash
DIR=/home/data
target=$DIR
cd "$DIR"
for file in *; do
dname="$( date -d "${file%-*}" "+$target/%Y/%b_%m" )"
mkdir -vp "${dname%/*}"
mv -vt "$dname" "$file"
done
没有检查文件夹是否存在,创建一个文件夹会删除该文件夹内的文件吗?
我也不确定在目录路径名中添加星号会做什么?
我对bash不是很熟悉,但如果有人能向我解释一下正在发生什么,我会很高兴让这个工作起来。
谢谢!
ls -ltr
显示的文件日期不同吗? - Gilles Quénot