Рейтинг:0

Сравнение структуры файлов

флаг lk

У меня есть 2 структуры каталогов:

директор1
1
â âââ файл1
ââ 2
â âââ файл1
ââ 3
â âââ файл1
ââ 4
â âââ файл1
ââ 5
    âââ файл1
директор2
1
ââ 2
ââ 5

я использую xargs mkdir -p < dirs.txt сделать файл .txt с именами директорий. В этом файле я получил только пути к каталогам, без файлов в каталогах. Как удалить пути к файлам, включает только список каталогов в dirs.txt?

Например: мне нужно взять из директор1 структура каталогов из директор2 с файлами из директор1. Это должно выглядеть так директор3:

директор3
1
â âââ файл1
ââ 2
â âââ файл1
ââ 5
â âââ файл1

На последнем шаге я буду использовать: rsync -a /source/directory --files-from=/full/path/to/listfile/destination/directory

Рейтинг:0
флаг cn

Используйте команду найти. Это может быть проинструктировано с помощью -тип флаг, чтобы найти только каталоги, и с помощью -дорожка флаг, находить только элементы, соответствующие пути. Например,

найти . -путь './dir1/*' -тип d

будет только перечислять все каталоги и подкаталоги в директор1. Затем вы можете перенаправить это на dirs.txt файл и отредактируйте этот файл так, как вы хотите.

Рейтинг:0
флаг cn

Трудность с этими задачами обычно возникает, когда вам нужно сопоставить что-то в середине пути, в этом случае кажется, что вы можете сопоставить второй уровень из двух списков каталогов. Я также предполагаю, что у вас нет, например, новых строк ни в одном из путей.

awk -F / -vOFS=/ -vf=2 'NR==FNR {a[$f]++; следующий} $f в {$1=""; напечатать $0}' \
      <(printf %s\n dir2/*) dirs.txt | rsync -avx --files-from=- dir1/ dir3

Установка разделителя к / в основном делает поля из различных компонентов пути, компонент пути после отправная точка станет вторым полем. Действие первого шаблона NR==FNR {} читает первый файл в массив, который является списком каталогов директор2. Когда первый файл достигает конца, НР==ФНР становится ложным, и второй файл будет обработан следующим действием шаблона. Прежде чем печатать путь, отправная точка должен быть удален для учета источника/назначения rsync.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.