Linux 按月查找似乎缺少文件
我正在运行以下命令来组织数千张图片,我已经创建了目录结构:Linux 按月查找似乎缺少文件,linux,macos,bash,shell,find,Linux,Macos,Bash,Shell,Find,我正在运行以下命令来组织数千张图片,我已经创建了目录结构: for YEAR in 00 01 02 03 04 05 06 07 08 09 10 11 12 13; do for MONTH in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec; do echo $YEAR $MONTH; find . -newermt "01-$MONTH-20$YEAR -1 sec" -and \ -not
for YEAR in 00 01 02 03 04 05 06 07 08 09 10 11 12 13; do
for MONTH in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec; do
echo $YEAR $MONTH;
find . -newermt "01-$MONTH-20$YEAR -1 sec" -and \
-not -newermt "01-$MONTH-20$YEAR +1 month -1 sec" \
-exec mv {} ../20$YEAR/$MONTH/ \;
done
done
这已经成功地移动了多个文件。但是,似乎发现缺少文件。如果在我的脚本后面放一个ll | wc-l,目录中仍然有2000个文件。如果是按日期排序,则它们都是从2000年1月开始创建的
我不是一个寻找的专家。任何帮助都将不胜感激 这里有一个使用OS X统计数据和日期的替代方案:
for f in *;do d=../$(date -r $(stat -f%m $f) +%Y/%m);mkdir -p $d;mv $f $d;done
将日期-d@$stat-c%Y$f+%Y/%m与GNU统计和日期一起使用。find.>所有列表;找到-newermt….>日期表;comm-3 allList dateList或类似工具可能会向您显示遗漏的内容,这样您就更容易理解需要更改的内容。当然,省略-exec mv。。在2号找到cmd。哦,如果你所有的日期列表文件都已经被移动了,那么只需cd../;查找。>日期列表,然后通信。。。和以前一样。这张cd是为了把你放在目录的顶端,上面有你所有20美元一年的目录。祝你好运。你写的它们都是从2000年1月开始创建的——但是它们是从2000年开始修改的吗-newermt检查修改时间,而不是创建或inode更改时间。