Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Function to display usage
- display_usage() {
- echo "Использование: $0 directory1 directory2"
- echo "Сравнить содержимое двух каталогов"
- }
- # Check if help option is specified
- if [[ ( $1 == "--help") || $1 == "-h" ]]; then
- display_usage
- exit 0
- fi
- # Check if number of arguments is correct
- if [ "$#" -lt 2 ]; then
- echo "Ошибка: Неправильное количество аргументов"
- display_usage
- exit 1
- fi
- dir1=$1
- dir2=$2
- # Compare the contents of the two directories
- for file in $(ls $dir1); do
- if [ -e "$dir2/$file" ]; then
- # Файл есть в двух папках, сравнивать по размеру и времени изменения
- size1=$(stat -c %s "$dir1/$file")
- size2=$(stat -c %s "$dir2/$file")
- time1=$(stat -c %Y "$dir1/$file")
- time2=$(stat -c %Y "$dir2/$file")
- if [ $size1 -eq $size2 ] && [ $time1 -eq $time2 ]; then
- echo "Файл $file одинаков в двух каталогах"
- else
- echo -e "Файл $file отличается в двух каталогах.\nФайл $file имеет размер $size1 [bytes] и время $time1 в первой папке\nНо $file имеет размер $size2 [bytes] и время $time2 во второй папке"
- fi
- else
- echo "Файл $file есть только в $dir1"
- fi
- done
- # Check for files present only in dir2
- for file in $(ls $dir2); do
- if [ ! -e "$dir1/$file" ]; then
- echo "Файл $file есть только в $dir2"
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement