Сценарий Bash для мониторинга каталога и создания символических ссылок на все вновь созданные подкаталоги и их файлы

sudo apt-get install qt5-default

Если вы хотите qt5, для qt4используйте:

sudo apt-get install qt4-default
0
09.11.2020, 21:25
1 ответ

Вам нужно использовать путь к каталогу в целевом месте назначения

#!/bin/bash
#
src='/source_dir'
dst='/destination_dir'

inotifywait -r -m "$src" --format '%w%f' -e CREATE,MOVED_TO |
    while IFS= read -r item
    do
        # echo "Got $item"
        if [[ ! -d "$item" ]]
        then
            echo mkdir -p "${item%/*}"
            echo cp -as "$item" "$dst/${item#$src/}"
        fi
    done

Удалите два префикса echo, если вы уверены, что программа работает так, как вы ожидаете. Раскомментируйте echo "Got $item", чтобы увидеть, что происходит.

Обратите внимание, что невозможно использовать inotifywaitтаким образом для обработки имен файлов или каталогов, которые содержат символы новой строки (добавление \000или даже \001к строке --formatс или без $'...', по-видимому, вообще не позволяет inotifywaitдоставлять какие-либо обновления статуса ).

1
18.03.2021, 22:51

Теги

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