it-swarm-eu.dev

Come posso spostare file e directory nella cartella principale in Linux?

In Linux (Ubuntu), come spostate tutti i file e le directory nella directory principale?

70
nekbaba
trova . -maxdepth 1 -exec mv {} .. \;

questo sposterà anche i file nascosti.

Riceverai il messaggio:

mv: non posso muovere `. ' a `../. ': Dispositivo o risorsa occupata

quando prova a spostare . (directory corrente) ma ciò non causerà alcun danno.

61
John T

Sono venuto qui perché sono nuovo anche a questo argomento. Per qualche ragione, quanto sopra non ha fatto il trucco per me. Quello che ho fatto per spostare tutti i file da una directory alla directory principale era:

cd to/the/dir
mv * ../
83
Ben Fransen

Digita questo nella shell:

mv *.* ..

Ciò sposta TUTTI i file un livello in alto.

Il carattere * è un jolly. Quindi *.deb sposta tutti i file .deb e Zeitgeist.* sposta Zeitgeist.avi e Zeitgeist.srt su una cartella, poiché, ovviamente, .. indica la directory padre.

Per spostare tutto, comprese le cartelle, ecc., Basta usare * anziché *.*

10
Gil

Non può essere più semplice di:

mv * ../

Per spostare anche i file nascosti:

mv /path/subfolder/{.,}* /path/ 

mv è un comando per spostare i file, * significa che tutti i file e le cartelle e ../ è il percorso della directory padre.

6
William Edwards

In bash puoi usareshopt -s dotglob per fare * abbinare tutti i file e spostarli semplicemente

shopt -s dotglob; mv * ..

Questa non è la soluzione migliore poiché l'impostazione è permanente per la Shell finché non la cambi

shopt -u dotglob

ma penso sia bello saperlo.

2
maaartinus
find . -maxdepth 2 -type f -exec mv {} .. \;

Ho usato una variazione di sopra per spostare tutti i file dalle sottocartelle nel genitore.

Avevo dati in cartelle per anno, ma ho trovato utilizzando i metadati che potevo averli tutti nella stessa cartella che ha reso più facile la gestione.

per esempio.

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
1
Bill Bixby

Un metodo che non causa errori e funziona sempre:

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done
1
djhaskin987
find -type f|while read line; do mv $line ${line##*/}; done
0
Adler

Supponendo che tutti i tuoi file nascosti inizino con il punto seguito da una lettera o un numero (che dovrebbero), potresti usare

mv * .[A-Za-z0-9]* ..

La parte .[A-Za-z0-9]* è per assicurarti di non provare a spostare . o .. lungo, il che fallirebbe.

0
ℝaphink

Non è necessario cambiare directory. Basta includere * alla fine del percorso:

mv /my/folder/child/* /my/folder/

Sopra sposta solo i file non nascosti. Usa solo i file nascosti. *

mv /my/folder/child/.* /my/folder/

Sopra due possono essere combinati in un unico comando:

mv /my/folder/child/{.,}* /my/folder/

Vedi anche: Come spostare tutti i file inclusi i file nascosti nella directory principale tramite *

0
Shital Shah

È semplice spostare tutti i file e le cartelle nella directory principale in Linux.

Vai a quella cartella e usa questo comando:

mv * /the full path

Ad esempio, se i tuoi file e cartelle sono come segue:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

Vai a quella cartella tramite cd:

cd /home/abcuser/test
mv * /home/abcuser

Tutti i file e le cartelle verranno spostati nella cartella abcuser (directory padre).

0
Abhishek