[bash] Copiare - Spostare i files elencati in una lista in una cartella destinazione
Editare il file movefiles.sh
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
cp "$line" "$2"
done < "$1"
Assegnare i permessi per l'esecuzione
chmod 764 movefiles.sh
$1 file conteneente la lista dei files (con path, relativo e/o assoluto)
$2 cartella di destinazione
NOTE:
IFS='' (or IFS=) prevents leading/trailing whitespace from being trimmed.
-r prevents backslash escapes from being interpreted.
|| [[ -n $line ]] prevents the last line from being ignored if it doesn't end with a \n (since read returns a non-zero exit code when it encounters EOF).
ESEMPIO
-------------
Creiamo il file lista:
find . -name '*.pdf' > pdf.lst
Eseguiamo lo Script
./movepdf.sh pdf.lst ../1000\ E-Book\ In\ Italiano/
oppure
./movepdf.sh pdf.lst "../1000 E-Book In Italiano/"