Вот сценарий Perl. Выполните его в каталоге наверху дерева, которое Вы хотите искать. Сценарий зависит от find
и md5
, но последний может быть заменен sha1
, sum
или любая другая программа хеширования файла, которая принимает вход на stdin и производит хеш на stdout.
use strict;
my %files;
my %nfiles;
my $HASHER = 'md5';
sub
print_array
{
for my $x (@_) {
print "$x\n";
}
}
open FINDOUTPUT, "find . -type f -print|" or die "find";
while (defined (my $line = <FINDOUTPUT>)) {
chomp $line;
my @segments = split /\//, $line;
my $shortname = pop @segments;
push @{ $files{$shortname} }, $line;
$nfiles{$shortname}++;
}
for my $shortname (keys %files) {
if ($nfiles{$shortname} < 2) {
print_array @{ $files{$shortname} };
next;
}
my %nhashes;
my %revhashes;
for my $file (@{ $files{$shortname} }) {
my $hash = `$HASHER < $file`;
$revhashes{$hash} = $file;
$nhashes{$hash}++;
}
for my $hash (keys %nhashes) {
if ($nhashes{$hash} < 2) {
my $file = $revhashes{$hash};
print "$file\n";
}
}
}
Сценарий, как упомянуто в комментарии к вопросу:
#!/bin/bash
xrandr \
--output LVDS-1 \
--auto \
--dpi 145 \
--left-of DVI-D-1 \
--output DVI-D-1 \
--primary \
--auto \
--dpi 96
sleep 1
killall -USR1 xfce4-panel
Это делает подключенное устройство DVI основным дисплеем и располагает экран ноутбука (LVDS) слева от DVI. Названия устройств варьируются - вывод проверки xrandr -q
для имен в Вашей системе. После того, как конфигурация успокаивается, xfce4-панель сообщена для перезагрузки себя - это должно главным образом удостовериться, что переключатель рабочей области обновляет свои кэшируемые настольные размеры (без этого, это только отобразило бы один экран миниатюры).
Для отключения монитора, Вам нужно что-то как:
#!/bin/bash
xrandr --output DVI-D-1 --off
sleep 1
killall -USR1 xfce4-panel
Вы могли бы также хотеть проверить запись Сессии и Запуска в менеджера по Настройкам XCE fo что-либо, что напомнит приложение, которое попыталось бы сделать это автоволшебно и возможно удалить ее (я не могу помнить, было ли это автономным сервисом или было ли это частью менеджера по висячей строке).