Unix, как копировать файл в каталог и эхо

Я могу убедиться, что mkusb работает в iso-файлах 12.04.1 и 12.04.5, и я думаю, что он также будет работать в соответствующей установленной системе Kubuntu. Он может не только

  • очистить диск(удалить первый мибибайт и таким образом подготовить его, чтобы большинство инструментов могли управлять им, например gparted ),

, но и

  • восстановить диск на стандартное запоминающее устройство (, например на USB-накопитель )с таблицей разделов MSDOS и файловой системой FAT32. Это быстрый и удобный «стандартный метод».

Есть и другие особенности mkusb, главная особенность

  • создать загрузочные USB-накопители .

См. следующие ссылки

help.ubuntu.com/community/mkusb

help.ubuntu.com/community/mkusb/wipe

Если вы запускаете стандартный Ubuntu live , вам потребуется дополнительная инструкция для получения юниверса репозитория. (Kubuntu, Lubuntu... В Xubuntu репозиторий Universe активируется автоматически.)

sudo add-apt-repository universe  # only for standard Ubuntu # 14.04 and newer
sudo add-apt-repository 'http://archive.ubuntu.com/ubuntu/ universe'  # 12.04

sudo add-apt-repository ppa:mkusb/ppa  # and press Enter
sudo apt-get update
sudo apt-get install mkusb mkusb-nox usb-pack-efi

0
20.02.2020, 09:36
2 ответа

Проще всего было бы включить подробный режим в команде копирования

cp -av Pictures BACKUP_FILES2/

Или

rsync -av Pictures BACKUP_FILES2/

Если вы хотите настроить сообщение, вам нужно выполнить итерацию по файлам. Поскольку вы не сказали нам, содержит ли Picturesкаталоги файлов, я собираюсь предложить несколько альтернативных решений.

Во-первых, одноуровневый каталог файлов

#!/bin/bash
# Backup files from a single level directory
target=BACKUP_FILES2/Pictures

# ensure target exists
mkdir -p "$target"

# here we go
for pic in Pictures/*
do
    if [[ -f "$pic" ]]
    then
        # it's a file
        cp -p "$pic" "$target/" &&
            echo "Copied $pic" >&2
    fi
done

Далее несколько вариантов дерева каталогов файлов.

#!/bin/bash
# Backup a tree of files using cp and a customised message
target=BACKUP_FILES2

find Pictures -exec bash -c '
    for i in "$@"
    do
        if [[ -d "$i" ]]
        then
            mkdir -p "/tmp/target/$i" && echo "Created directory $i" >&2
        else
            cp -p "$i" /tmp/target/"$i" && echo "Copied $i" >&2
        fi
    done
' _ {} +

Или

#!/bin/bash
# Backup a tree of files using rsync and a customised message
target=BACKUP_FILES2

find Pictures -type f -exec bash -c '
    for i in "$@"
    do
        rsync -aqR --no-r "$i" "$target" && echo "Copied $i" >&2
    done
' _ {} +
0
28.04.2021, 23:22

Ваш цикл for приводит только к одному элементу, который затем не используется в вашей команде cp. Это может выглядеть так:

BACKUP_DIR="/Users/ashleyschumann/BACKUP_FILES2/"
for item in /Users/ashleyschumann/Pictures/*
do
    cp -r $item./BACKUP_FILES2
    echo "$item copied to $BACKUP_DIR"
done

Но, как уже сказал муру, cp -vсделает это.

2
28.04.2021, 23:22

Теги

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