Найдите все папки в каталоге с тем же содержанием

Самый легкий путь состоит в том, чтобы использовать groupmod -g <NEW_GID> <groupname>

Иначе должен отредактировать /etc/group непосредственно. Третье поле в каждом столбце является ценурозом.

Если измененная группа является основной группой пользователя, /etc/passwd потребность, которая будет адаптирована, также: usermod -g <NEW_GID> <username>.

10
19.06.2014, 08:47
1 ответ
#!/bin/bash
shopt -s dotglob

for file in "$1"/*; do [[ -f "$file" ]] && d1+=( "$(md5sum < "$file")" ); done
for file in "$2"/*; do [[ -f "$file" ]] && d2+=( "$(md5sum < "$file")" ); done 

[[ "$(sort <<< "${d1[*]}")" == "$(sort <<< "${d2[*]}")" ]] && echo "Same" || echo "Different"

Вы видите его в действии здесь:

$ mkdir 1 2
$ ./comparedirs 1 2
Same
$ cat > 1/1 <<< foo
$ cat > 2/1 <<< foo
$ ./comparedirs 1 2
Same
$ cat > 2/1 <<< bar
$ ./comparedirs 1 2
Different
5
27.01.2020, 20:03
  • 1
    Так как этот сценарий не тестируется, я стремлюсь видеть, прокладывает ли он себе путь, он, как предполагается, работает. –  Anderson Green 13.12.2012, 00:08
  • 2
    @AndersonGreen обновленный ответ, протестированный это. –  Chris Down 13.12.2012, 00:13
  • 3
    Мило! Должен также быть тест с cat > 1/2 <<< bar и cat > 2/3 <<< bar показать несколько файлов и отличающихся метаданных (== "То же") –  nealmcb 19.06.2014, 06:59
  • 4
    @ChrisDown: действительно сортирует на последнем необходимом шаге? –  harish.venkat 19.06.2014, 08:49
  • 5
    Изящный сценарий, только незначительная ошибка - то, что он возвращает То же, когда или или оба каталога не делают существует. Должно быть легко закрепляемым, если Вы лучше в сценариях, чем я. –  cosine 11.09.2015, 13:26

Теги

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