按日期对文件进行排序并将其他所有文件复制到新文件夹

按日期对文件进行排序并将其他所有文件复制到新文件夹

我想知道按日期对文件进行排序然后将每个其他文件复制到新文件夹的最简洁的方法是什么。

我的问题:我已将文件重命名为

file1 (101)
file2 (103)
file3 (110)
.
.
.

其中编号并不表示文件之间的内在差异。我想要排序的两种文件类型之间唯一真正不同的地方是它们的创建日期是交替的,因此我上面的问题陈述相当复杂。

答案1

以下脚本似乎不错,但只有满足以下条件才能工作:“行为良好”文件名[1]

#!/bin/bash
foo=0
for f in $(ls -rt) ; do 
  if [ $((foo%2)) -eq 0 ];
    then
       echo "even " "$f";  // maybe here copy
    else
       echo "odd" "$f" ;   // maybe here skip
  fi
  let foo++
done

因此基本上没有换行符,没有制表符,没有空间... 就像你的情况一样。
请记住,解析ls [1]并时常仔细检查。

如果你不在可以使用 ls 的安全区域,那么你可以考虑使用 来寻找解决方案find,也许可以从 Gilles 的回答中得到一些启发[2]


Ps> 如果数据损坏,即使是像您这样的轻微情况,也始终需要检查补丁是否有效。通常从头开始更方便。如果数据量很大,并且您无法再次传输/下载,那么始终可以进行一些检查(例如md5sum[3] ) 在原始数据和修补数据上进行测试。

相关内容