Копировать файлы без каталогов в скрипте bash

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

Итак, у меня есть USB-накопитель под названием Data, на данных есть 2 каталога, Dir1 и Dir2, в каждом каталоге есть файл. Dir1File.txt и Dir2File.txt.

Я хочу скопировать эти два файла в / home / data, но если я выполню

rsync -av /media/* /home/data

data, тогда будет каталог с именем Data, внутри которого находятся Dir1 и Dir 2, внутри которых находятся соответствующие файлы. Можно ли это сделать?

1
задан 6 August 2019 в 21:55

1 ответ

Вы могли использовать find команда, чтобы получить список всех файлов и затем использовать цикл для копирования файлов один за другим. Что-то вроде этого:

for i in `find /media -type f` ; do cp $i /home/data/ ; done

Конечно, если то же имя файла появляется в нескольких местах затем, что файл будет перезаписан, и Вы просто получите последний.

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

1
ответ дан 7 December 2019 в 14:59

Другие вопросы по тегам:

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