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.