Risposte:
Con la cartella denominata "myfolder" e un livello superiore nella gerarchia dei file (il punto che si desidera inserire) il comando sarebbe:
mv myfolder/* .
Così, per esempio, se i dati sono stati in /home/myuser/myfolderpoi da /home/myuser/eseguire il comando.
.*. Rimuovere la cartella originale è sia banale che non richiesto, quindi faremo in modo che OP lo gestisca da solo.
*e .*in una riga? solo curiosità
mvsaranno tutti i sorgenti tranne l'ULTIMO argomento che deve essere il bersaglio per lo spostamento (e nel caso di più fonti, deve essere una cartella).
/bin/mv: Argument list too long
Giusto per renderlo chiarissimo, tratto dalla risposta di Rudu sopra e dai commenti.
Se è necessario spostare tutti i contenuti, COMPRESI i file che iniziano con a. (come .htaccess, .git, ecc.), devi includere sia * che. * nel tuo comando. Così:
mv subfolder/* subfolder/.* .
In questo modo il contenuto della sottocartella verrà spostato nella cartella corrente. Nota lo spazio prima dell'ultimo ".".
mv: rename fake/. to ./.: Invalid argumentemv: rename fake/.. to ./..: Invalid argument
Questo è possibile con i seguenti metodi:
Utilizzando rsync:
rsync -vua --delete-after foo/ .Utilizzando cpe rmdir:
cp -vaR foo/. . && rmdir foo/Utilizzo mv(con dotglobopzione abilitata):
shopt -s dotglob # Includes filenames beginning with a dot.
mv -- foo/* . # Where foo/ is the folder consisting the files.
shopt -u dotglob # Disables previously enabled dotglob option.
dov'è la foo/tua cartella il cui contenuto deve essere spostato di un livello superiore.
Vedi: help shopte man bash.
Utilizzo mv(come suggerito qui ):
mv foo/* foo/.[^.]* . && rmdir foo/
Nota: perderebbe un file chiamato foo/..bar...
Nota: per le shell POSIX, è necessario [!.].
-v, -u, -ae -rfacendo? AFAICT, -vè dettagliato, il che rende rsync più informazioni di stampa. -usignifica aggiornamento: copia un file solo se è più recente. Non sembra rilevante. -asignifica archivio. Ciò copierà il proprietario e le autorizzazioni del file e renderà la sincronizzazione ricorsiva. -rsignifica ricorsivo, ma è già coperto da -a.
-uè utile quando non si desidera dedicare più tempo allo spostamento dei dati già presenti (soprattutto per i dispositivi di archiviazione lenti). Ho rimosso -r, poiché è coperto da -acome hai menzionato.
mv foo/* foo/.[^.]* .perderebbe un file chiamato foo/..bar..ad esempio. Si noti che per le shell POSIX è necessario [!.].
rsync -vua --delete-after foo/ .elimina tutto ciò che potrebbe già esistere nella directory corrente.
basta emettere un comando mv
mv (directory)/* .
se si desidera eliminare la directory, quindi aggiungere
rm -rf (directory)
Supponendo che ci si trovi in una directory padre di (directory)
Se ti trovi all'interno della (directory), allora
mv * ../
rmdirlamenta ed esce se la directory non è vuota, mentre rm -rinvece dovrebbe semplicemente eliminarla e tutto il suo contenuto. (È un poka-giogo .)
.DS_storein macOS. Il mvcomando sopra non sposta questi (senza dotglobset).
per quelli di voi su un server condiviso dovreste usare qualcosa del genere
Per spostare i file
mv -v ~/public_html/public_html/* ~/public_html/
Per copiare i file
cp -a ~/public_html/public_html/* ~/public_html/
.*non solo*se l'archivio conteneva file dot. Aggiungi anche `&& rmdir myfolder` alla fine per rimuovere la cartella ora estranea. Questo viene salvato perché verrà eseguito solo se mv restituisce esito positivo E perché rmdir non rimuoverà una directory non vuota.