2016-08-22 2 views
0

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

Здесь я даю ответ, но если у вас, ребята, есть менее неуклюжие и эффективные способы достижения цели, это было бы идеально.

ответ

1

Одно из возможных решений этого сценария:

#!/bin/bash 

OLDDIR=$(readlink -f $1) 
NEWDIR=$(readlink -f $2) 

cd $NEWDIR 
for file in $(find .); do 
    file2=$OLDDIR/$file 
    if test -e "$file2" && diff >/dev/null -q "$file" "$file2" ; then 
     touch -r "$file2" "$file" 
    fi 
done 
2

Еще проще просто:

rsync -uav /path/to/dir1/ /path/to/dir2 

(удаление v подавляет --verbose выход)

Примечание: в отставание '/' followi ng dir1. Он сообщает rsync принять содержаниеdir1 вместо dir1.

Смежные вопросы