Ho questa struttura di cartelle:
foo
`----> bar
Come posso estrarre il contenuto di bar in foo ?
Ho provato mv -f bar/* . da foo .
-f, –forza | non chiedere prima di sovrascrivere
ma ottengo "Impossibile spostare bar/ajax a foo/ajax perché la directory non è vuota”
Come posso risolverlo?
Risposta accettata:
mv sovrascriverà i file, ma rifiuterà di sovrascrivere le directory . Non esiste un unico comando che unirà le directory e rimuoverà le directory di origine (che è probabilmente quello che vuoi con mv ). Anche rsync --remove-source-files lascerà directory vuote.
Puoi usare una combinazione di comandi:
cp -a dev/. .
rm -r dev
che copia tutto in dev nella directory corrente e quindi rimuove il dev directory.
Oppure:
rsync -a --remove-source-files dev/ .
find dev -depth -type d -exec rmdir {} ;
che utilizza rsync per spostare tutti i file, quindi elimina le directory vuote rimaste.