Как удалить дубликаты файлов с тем же размером и датой?

По причине я не знаю, Постфикс решил копировать все электронные письма, которые я получил в определенной папке после моего возврата отпуска. Вместо того, чтобы иметь ~1000 электронных писем в той папке, я теперь имею 401120! Это слишком очень для Thunderbird, таким образом, почтовый клиент отказывается загружать любого из них.

Когда я ssh в почтовый сервер, я вижу следующее:

-rw-------   68 user user     1415 Aug  3 17:45 502716210.M218413P5883.mail.domain.com,S=1415,W=1445:2,
-rw-------   68 user user     1415 Aug  3 17:45 502716327.M661584P5946.mail.domain.com,S=1415,W=1445:2,
-rw-------   68 user user     1415 Aug  3 17:45 502716331.M210364P5948.mail.domain.com,S=1415,W=1445:2,
-rw-------   68 user user     1415 Aug  3 17:45 502716412.M161709P6009.mail.domain.com,S=1415,W=1445:2,
-rw-------   42 user user     2393 Aug  3 17:44 502714577.M151447P4492.mail.domain.com,S=2393,W=2447:2,
-rw-------   42 user user     2393 Aug  3 17:44 502715910.M338737P5564.mail.domain.com,S=2393,W=2447:2,
-rw-------   42 user user     2393 Aug  3 17:44 502715914.M370949P5566.mail.domain.com,S=2393,W=2447:2,
-rw-------   42 user user     2393 Aug  3 17:44 502715964.M213570P5615.mail.domain.com,S=2393,W=2447:2,

Я вижу, что Постфикс дал всем файлам их собственное имя, но когда я смотрю с нано, я вижу, что все файлы с тем же размером и датой идентичны.

Как я могу удалить все дубликаты файлов, для получения только одного файла для каждой даты размера?

2
задан 14 August 2017 в 20:27

1 ответ

скопируйте это в файл (скажите: kill_dupes), и добавляют выполненные права (chmod a+x kill_dupes) и работают, он

#!/bin/bash

ls -gGlt | sort -k4,6 -k3,3n > filelist.txt

awk '
BEGIN   {
        printf("#!/bin/bash\n\n");
        filename0 = $7;
        filesize0 = $3;
        filedate0 = $4$5$6;
    }

NF>2    {
        filename1 = $7;
        filesize1 = $3;
        filedate1 = $4$5$6;
        if(filesize1==filesize0 && filedate1==filedate0) {
            printf("rm %s\n", filename1);
        } else {
            filename0 = filename1;
            filesize0 = filesize1;
            filedate0 = filedate1;
        }       
    }
' filelist.txt > rmdupes.sh

затем проверяет содержание файл

head rmdupes.sh

rmdupes.sh , проверьте его прежде на самом деле выполнить его.

( 502715964. M213570P5615.mail.domain.com, S=2393, W=2447:2 фактическое имя файла?)

1
ответ дан 2 December 2019 в 04:47

Другие вопросы по тегам:

Похожие вопросы: