Как удалить повторяющиеся файлы с одинаковыми размерами и датой?

Вот как я это сделал:

Оборудование:

Ubuntu 11.04 Рабочий стол на 1-м генераторе eeePC Linksys WRT120N Беспроводной N-маршрутизатор Huawei E620 Широкополосный USB-кабель модема Ethernet

Оборудование:

Ubuntu 11.04 Рабочий стол 1-го поколения eeePC

Ubuntu 11.04 Рабочий стол 1-го поколения eeePC

] Linksys WRT120N Wireless N Router

Ethernet-кабель, подключенный к порту Ethernet

, подключает Huawei к Интернету, отключает проводное соединение (Auto Eth0) в значке сетевого лотка, создает новый проводное соединение (Edit Connections ...> Добавить, введите имя) и выберите Shared To Other Computers из вкладки настроек IPv4. подключитесь к этому новому проводному соединению, запишите настройки этого подключения в разделе Connection Information, а DNS-серверы для соединения Huawei

Ubuntu Setup:

подключить Huawei к Интернет откройте браузер на этом компьютере, перейдите к Linksys (192.168.1.1 по умолчанию, пользователь и пароль должны быть как администраторами). отключить проводное соединение (Auto Eth0) в значке сетевого лотка В разделе Internet IP Address я поставил номер, который пришел после IP-адреса eeePC для этого соединения (опять же, а не IP для соединения Huawei), это было просто предположение, поскольку я довольно не знаю, как это работает. Итак, у моей машины Ubuntu был IP-адрес 10.42.43.1, и я дал Linksys 10.42.43.2 создать новое проводное соединение (Edit Connections ...> Добавить, ввести имя) и выбрать Shared To Other Computers со вкладки настроек IPv4 . Default Gateway должен быть IP-адресом eeePC, 10.42.43.1 в моем случае. подключиться к этому новому подключенному соединению Нажмите Save Settings.

Установка Linksys:

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

3 ответа

скопируйте это в файл (скажем: 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

, затем проверьте содержимое файла rmdupes.sh

head rmdupes.sh

, пожалуйста, проверьте его перед запуском.

(есть rmdupes.sh фактическое имя файла?)

1
ответ дан 22 May 2018 в 19:28
  • 1
    Это сработало! Ну, в основном. Он уменьшился с 401120 до 46703. Но когда они являются дубликатами разного размера в одно и то же время, никаких дубликатов не удаляются: -rw ------- 42 1394 3 авг. 18:13 1502716331.M210367P5948.mail.domain.com , S = 1394, W = 1424: 2, -rw ------- 41 2339 3 авг. 18:13 1502716331.M210368P5948.mail.domain.com, S = 2339, W = 2390: 2, -rw- ------ 42 1394 3 авг. 18:13 1502716412.M161712P6009.mail.domain.com, S = 1394, W = 1424: 2, -rw ------- 41 2339 3 авг. 18:13 1502716412 .M161713P6009.mail.domain.com, S = 2339, W = 2390: 2, – VincentCrete 14 August 2017 в 23:42
  • 2
    сортировка добавляется после ls. Пожалуйста, попробуйте это так, он должен работать сейчас :-) – Macsek 15 August 2017 в 00:04
  • 3
    Это сработало, спасибо! – VincentCrete 15 August 2017 в 15:38

скопируйте это в файл (скажем: 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

, затем проверьте содержимое файла rmdupes.sh

head rmdupes.sh

, пожалуйста, проверьте его перед запуском.

(есть rmdupes.sh фактическое имя файла?)

1
ответ дан 18 July 2018 в 08:32

скопируйте это в файл (скажем: 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

, затем проверьте содержимое файла rmdupes.sh

head rmdupes.sh

, пожалуйста, проверьте его перед запуском.

(есть rmdupes.sh фактическое имя файла?)

1
ответ дан 24 July 2018 в 19:06

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

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