Rsync для копирования определенных подпапок и файлов в новый каталог

В 1980-х годах BIOS ПК должен был знать геометрию жесткого диска, чтобы правильно с ним работать. Пользователи должны были ввести правильное количество цилиндров, головок и секторов.

В какой-то момент (с введением интерфейса IDE— моя память на эту тему довольно нечеткая) диски стали способны сообщать компьютеру свою геометрию.

К началу-середине 1990-х прошивка диска самостоятельно управляла геометрией диска. BIOS по-прежнему требовалось значение для C/H/S, потому что оно использовало его для расчета размера диска. Но разбивка на значения C/H/S может быть произвольной. Таким образом, диски сообщали значения C/H/S, которые не имели ничего общего с фактической геометрией диска, но соответствовали допустимому диапазону и давали правильный общий размер.

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

0
16.07.2017, 05:18
3 ответа

Попробуйте это.

rsync -r --include='*.jpg' --exclude="*" /RootFolderI/Folder*/Subfolder1/Subsub1/. /RootFolderII/.
1
28.01.2020, 02:27

Не думаю, что я бы использовал rsync для этой задачи. (Здесь нет дельта-алгоритма, так что мало что можно получить от его использования.) Вот версия с использованием cp :

for rfipath in RootFolderI/*
do
    folder="${rfipath/*\/}"
    mkdir -p "RootFolderII/$folder"
    cp -p "$rfipath"/*/Subsub1/* "RootFolderII/$folder"
done

Output

RootFolderII/FolderA/JPG1.jpg
RootFolderII/FolderA/JPG2.jpg
RootFolderII/FolderB/JPG4.jpg
RootFolderII/FolderB/JPG5.jpg

Если вы действительно хотите использовать rsync , замените строка cp с этим. Это даст вам время модификации для каталогов:

for folder in RootFolderI/*
do
    rsync -a "$folder"/*/Subsub1/ "RootFolderII/${folder/*\/}"
done
1
28.01.2020, 02:27

Что я сделал:

  • rsync with includes и исключает

  • Переместить файлы вверх (на 2 уровень выше)

     find / folder / -type f -mindepth 3 -execdir mv -t ../../ - {} + 
     
  • Удалить пустые папки

     find / folder / * / -type d -empty -delete 
     
1
28.01.2020, 02:27

Теги

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