Pagina 1 di 1

[RISOLTO] bash: spostare file creando dir

Inviato: lun 11 mag 2009, 16:51
da Communico
Io ho una variabile che mi rappresenta un file, tipo /home/ciao/dir1/a/b/c.prova
devo spostarlo in modo che vada in /home/ciao/dir2/a/b/c.prova
Il problema è che di dir a, b ne ho molte e quindi non posso craerle a mano, quindi mi sapreste dire come fare per spostare i file creando le directory?
Ho provato con mkdir -p ma non riesco a togliere il nome del file dalla variabile, quindi me lo considera come una directory da creare....Grazie in anticipo :D :D

Re: bash: spostare file creando dir

Inviato: lun 11 mag 2009, 17:00
da sixjan

Codice: Seleziona tutto

mkdir -p `dirname /home/stefano/dir1/a/b/c.prova`
ciao

Re: bash: spostare file creando dir

Inviato: lun 11 mag 2009, 17:10
da Communico
Grazie, ho risolto così un attimo dopo aver postato:
mkdir -p ${filesposta%/*.mp3}

Già che ci sono posto tutto il file così mi dite che porcate ho fatto, essendo il primo programma che scrivo in bash ne sarà pieno...

Codice: Seleziona tutto

#!/bin/bash

IFS_OLD=$IFS
IFS=$'\x0a'
listafile=`find . -type f | grep flac | sort`

for file in $listafile; do
        fileflac=${file}
        filewav=${file%flac}wav
        filemp3=${file%flac}mp3
        filesposta=/home/stefano/mp3/${filemp3#./}

        flac -d $fileflac
        lame --preset insane $filewav $filemp3
        mkdir -p ${filesposta%/*.mp3}
        rm $filewav
        mv $filemp3 $filesposta


done

IFS=$IFS_OLD