[RISOLTO] bash: spostare file creando dir

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Communico
Packager
Packager
Messaggi: 200
Iscritto il: sab 3 mag 2008, 19:59
Nome Cognome: Stefano Cereda
Slackware: current
Kernel: 2.6.29.1
Desktop: kde 4.2.2
Località: Seriate (BG)

[RISOLTO] bash: spostare file creando dir

Messaggio 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
Ultima modifica di Communico il lun 11 mag 2009, 18:58, modificato 1 volta in totale.

sixjan
Linux 2.x
Linux 2.x
Messaggi: 413
Iscritto il: dom 6 gen 2008, 11:46
Slackware: 14.1
Kernel: 3.10.17-smp
Desktop: Xfce 4.10

Re: bash: spostare file creando dir

Messaggio da sixjan »

Codice: Seleziona tutto

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

Communico
Packager
Packager
Messaggi: 200
Iscritto il: sab 3 mag 2008, 19:59
Nome Cognome: Stefano Cereda
Slackware: current
Kernel: 2.6.29.1
Desktop: kde 4.2.2
Località: Seriate (BG)

Re: bash: spostare file creando dir

Messaggio 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

Rispondi