我有n个文件的列表,有些文件是重复的(只有时间戳不同)。如何只保留1份副本并删除其他副本?
文件格式 - x_y_z_timestamp.tgz , x1_y1_z1_timestamp.tgz ... xn_yn_zn_timestamp.tgz
e.g。
结果 -
答案 0 :(得分:0)
mv x_y_z_20150113060314.tgz copy_x_y_z_20150113060314.tgz;
rm x_y_z*;
mv copy_x_y_z_20150113060314.tgz x_y_z_20150113060314.tgz
说明:
1. mv x_y_z_20150113060314.tgz copy_x_y_z_20150113060314.tgz
将您不想删除的文件复制到文件名不符合模式x_y_z的d / t文件中。
rm x_y_z*;
删除以名称模式x_y_z*;
mv copy_x_y_z_20150113060314.tgz x_y_z_20150113060314.tgz
将要保留的文件重命名为其原始名称
答案 1 :(得分:0)
按照前缀列出它们:
ls x_y_z_* > test
按逆序排序结果:
sort -r test > test.sorted
删除除第一个文件以外的所有文件:
rm `tail +2 test.sorted`
当然,您可以将所有内容组合成一个命令。