 |
n3o |
tanto c'è SPASS...

Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ^Belzebu^
e come sarebbe per copiare anche tutto il path dei file?
grazie!
ByezAll
^Belzebu^ Sappi che (ovviamente) in Linux la cosa è mooooooolto semplice cp -p --parents * dir
In Minix non ho trovato qualcosa del genere...mi sono inventato uno script:
code: 0) #!/bin/sh
1) NEWPATH="/dir2"
2) for SUBDIR in $(pwd | tr '/' ' '); do
3) mkdir ${NEWPATH}/${SUBDIR}
4) NEWPATH=${NEWPATH}/${SUBDIR}
5) done
6) for FILE in $(ls); do
7) cp -p ${FILE} ${NEWPATH}/${FILE}
8) done
Spiegazione, riga per riga:
0) interprete script
1) NEWPATH contiene la directory di destinazione (anche composta...)
2) pwd restituisce il percorso corrente e passato a tr '/' ' ', gli slash vengono sostituiti con degli spazi, in modo che il for riesca a scorrere ogni singola sotto directory che crea il percorso corrente
3) creo a "pezzetti" il sottoalbero anche nella directory destinazione, aggiungendo via via le sottodirectory più profonde della directory attuale
4) Aggiorno la directory di destinazione con l'ultimo ramo aggiunto
5) fine for
6) scorro ogni file nella directory
7) copio salvaguardando i permessi ogni file dalla sorgente alla destinazione
8) fine for
Ricordate di creare prima la directory di destinazione e consiglio di modificare le istruzioni (3) e (7) durante la prima volta per vedere cosa fa lo script:
3) echo mkdir ${NEWPATH}/${SUBDIR}
7) echo cp -p ${FILE} ${NEWPATH}/${FILE}
Esempio:
Destinazione = /dir2
Directory corrente = /root/dir1 (sarà il risultato di pwd)
Output del programma con gli echo:
mkdir /dir2/root
mkdir /dir2/root/dir1
cp -p prova /dir2/root/dir1/prova
cp -p script.sh /dir2/root/dir1/script.sh
__________________
The answer is blowing in the wind...
|