Перемещение файлов в папках по списку в файле

Если вы рассматриваете компьютеры на базе ARM -на базе Cortex -A7 или A53, вы можете рассмотреть:

Обычно они представляют список поддерживаемых платформ. Для Arch Linux вы можете проверить:https://archlinuxarm.org/platforms

Об установке: обычно требуется установить SD-карту и загрузиться с нее. Для Arch Linux вы можете проверить:https://archlinuxarm.org/platforms/armv6/raspberry-piили http://elinux.org/ArchLinux_Install_Guide

.

С другой стороны, обратите внимание, что Cortex -M3 больше подходит для микроконтроллеров, ASIC и SOC. Обычно на такие машины сложнее установить Linux. Вы можете проверить:https://electronics.stackexchange.com/questions/19234/linux-on-arm-cortex-m3-series

0
26.09.2019, 16:23
1 ответ

Использованиеrsync:

while IFS=, read -r src dest; do
    [ ! -d "$src" ] && echo "skipping missing directory \"$src\"" >&2 && continue
    mkdir -p "$dest" && rsync -av --exclude='*/' --remove-source-files --ignore-existing "$src/" "$dest"
done < file.txt

Этот сценарий считывает file.txtпострочно и назначает исходный и целевой каталоги переменным srcи dest. Строка разделяется запятой, определенной во внутренней переменной разделителя полейIFS(). Если srcне является каталогом, цикл while -продолжается со следующей строки, в противном случае создается целевой каталог и его родительские каталоги, если он не существует.

В вызове rsyncиспользуются следующие опции (см.man rsync):

  • -aрежим архива (сокращение для опций-rlptgoD)
  • -vподробный режим
  • --exclude='*/'исключить каталоги, передаются только не -каталоги
  • --remove-source-filesудалить файлы с отправляющей стороны после завершения передачи (аналогичноmv)
  • --ignore-existingне передавать файлы, которые уже существуют на стороне назначения

Вы можете сохранить скрипт как сценарий оболочкиmv_rsync.sh:

#!/bin/sh

[ $# -ne 1 ] && echo "invalid file argument" >&2 && exit 1
while IFS=, read -r src dest; do
    [ ! -d "$src" ] && echo "skipping missing directory \"$src\"" >&2 && continue
    mkdir -p "$dest" && rsync -av --exclude='*/' --remove-source-files --ignore-existing "$src/" "$dest"
done < "$1"

Сделать его исполняемым с помощью

chmod +x./mv_rsync.sh

и запустите его как

./mv_rsync.sh file.txt
0
28.01.2020, 03:15

Теги

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