Strona 1 z 1

Kopiowanie plików z listy

: 28 lip 2022, 17:51
autor: emstrang
Witam.
Nie potrafię sam napisać właściwego polecenia, a chciałbym móc kopiować pliki wyszczególnione w pliku tekstowym z jednej lokalizacji do drugiej.
W każdym wierszu listy jest jedna nazwa pliku. Być może mogłoby to być działanie wykorzystujące polecenia cat i cp. Nie wiem jednak jak seryjnie podstawiać kolejne linie odczytane przez cat do cp.

Kod: Zaznacz cały

#!/bin/sh
FILE="$(cat _lista)"
cp "$FILE" /home/suncez/leg

Kod: Zaznacz cały

#!/bin/sh
FILE="$(cat _lista | awk '{print $0}')"
cp "$FILE" /home/suncez/leg
_lista - lista plików o nazwach ze spacjami
leg - katalog docelowy

Re: Kopiowanie plików z listy

: 29 lip 2022, 01:26
autor: mario_7
Rzuć okiem na polecenie rsync i parametr --files-from

Re: Kopiowanie plików z listy

: 29 lip 2022, 07:08
autor: verdorben
nazwy plikow w list jeden pod drugim

Kod: Zaznacz cały

while read files; do
cp "$files" /path
done < list

Re: Kopiowanie plików z listy

: 30 lip 2022, 20:41
autor: emstrang
Dziękuję za odpowiedzi, sprawdziłem obie wskazówki i obie działają.
Skrypt odpalony w katalogu z plikiem _lista i kopiowanymi plikami:

Kod: Zaznacz cały

#!/bin/sh
while read files; do
cp "$files" /home/suncez/leg
done < _lista
I polecenie uruchomione z innej lokalizacji:

Kod: Zaznacz cały

rsync --files-from=/media/suncez/Dane/Archiwa/muzyka/_lista /media/suncez/Dane/Archiwa/muzyka/ /home/suncez/leg/
;-)