Для удалите шлюз в команде Linux:route delete default gw 192.168.1.1 eth1
Для добавьте шлюз в команду Linux:route add default gw 192.168.1.250 eth1
Вы можете сделать что-то вроде этого:
for file in /path/to/dirA/*; do
fileName=${file##*/}
diff -q <(sort "$file") <(sort /path/to/dirB/"$fileName") &&
rm /path/to/dirB/"$fileName"
done
Это будет перебирать все файлы в dirA
, сохраняя каждый как $file
. Обратите внимание, что $file
будет включать путь, поэтому это будет /path/to/dirA/file1
, а не просто file1
. Вот почему нам нужно получить имя файла, что мы и делаем, удаляя все до последней косой черты (fileName=${file##*/}
). Затем мы молча сравниваем файл с одноименным файлом в каталоге B и, если они идентичны, то в случае успешного завершения diff
мы удаляем файл из каталога B. &&
означает «запустить следующий команда, только если эта будет успешной», поэтому rm
будет запускаться только в том случае, если файлы идентичны.
Чтобы сделать его рекурсивным, предполагая, что вы используете bash
, используйте:
shopt -s globstar
cd /path/to/dirA/
for file in **; do
fileName=${file#*/}
echo diff -q <(sort "$file") <(sort /path/to/dirB/"$fileName") &&
rm /path/to/dirB/"$fileName"
done
Или, что более сложно, пропустить каталоги и -несуществующие файлы:
shopt -s globstar
cd /path/to/dirA/
for file in **; do
if [ -d "$file" ]; then
echo "$file is a directory, skipping.";
else
fileName=${file#*/}
if [[ -e /path/to/dirB/"$fileName" ]]; then
echo diff -q <(sort "$file") <(sort /path/to/dirB/"$fileName") &&
rm /path/to/dirB/"$fileName"
fi
fi
done
Используйте инструмент, такой как fdupes
, который специально разработан для этого путем вычисления хэша md5 для каждого файла. Я не буду вдаваться здесь в подробности, потому что есть некоторые оговорки, например, потеря данных, если вы укажете один и тот же каталог дважды. Например, если вы укажете /home/ и~/ одновременно, файлы в вашем домашнем каталоге будут указаны как их собственные дубликаты. Если вы настроите fdupes на автоматическое удаление дубликатов, вы в конечном итоге удалите все файлы в своем домашнем каталоге!
Вероятно, самое полезное, что вы можете сделать, это набрать man fdupes
в CLI, что покажет вам руководство со всеми опциями, так что вы сможете найти для себя лучший способ его использования и какие опции вы хотели бы использовать или нет. Предостережения — это не то, чего нужно бояться, а то, о чем нужно знать, и это, вероятно, лучший способ научиться пользоваться такими инструментами, потому что вы лучше поймете, что они делают. Вы не получите этого преимущества, если будете «вслепую» копировать -и вставлять предложения, данные в ответах.
Если у вас нет этого инструмента, он, скорее всего, будет доступен в вашем дистрибутиве в репозитории, поскольку многие выбирают его как инструмент командной строки.
В качестве альтернативы вы можете рассмотреть fslint
, который, по-видимому, является полезным инструментом на основе -графического интерфейса пользователя. Сам никогда не пробовал, поэтому ничего не могу сказать о нем.