Risposte:
trova . -maxdepth 1 -exec mv {} .. \;
questo sposterà anche i file nascosti.
Riceverai il messaggio:
mv: impossibile spostare `. ' a `../. ': Dispositivo o risorsa occupata
quando tenta di spostarsi .
(directory corrente) ma ciò non provoca alcun danno.
-maxdepth 1
essere sicuro.
Sono venuto qui perché sono nuovo anche su questo argomento. Per qualche ragione quanto sopra non ha funzionato per me. Quello che ho fatto per spostare tutti i file da una directory alla sua directory principale è stato:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Digita questo nella shell:
mv *.* ..
Ciò sposta TUTTI i file di un livello superiore.
Il personaggio *
è un jolly. Quindi *.deb
sposta tutti i file .deb e Zeitgeist.*
sposta Zeitgeist.avi e Zeitgeist.srt di una cartella in alto, poiché, ovviamente, ..
indica la directory principale.
Per spostare tutto, comprese le cartelle, ecc., Basta usare *
invece di*.*
*
non *.*
includere le directory
Non può essere più semplice di:
mv * ../
Per spostare anche i file nascosti:
mv /path/subfolder/{.,}* /path/
mv
è un comando per spostare i file, *
indica tutti i file e le cartelle ed ../
è il percorso della directory principale.
In bash è possibile utilizzare shopt -s dotglob per rendere * partita tutti i file e spostarli semplicemente
shopt -s dotglob; mv * ..
Questa non è la soluzione migliore poiché l'impostazione è permanente per la shell fino a quando non la si modifica
shopt -u dotglob
ma penso che sia bello saperlo.
(shopt -s dotglob && mv * ..)
. In questo modo, l'opzione è solo locale per quella subshell.
Un metodo che non causa errori e funziona ogni volta:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Ho usato una variante di cui sopra per spostare tutti i file dalle sottocartelle nel genitore.
Avevo i dati nelle cartelle per anno, ma ho scoperto che usando i metadati potevo averli tutti nella stessa cartella che ne semplificava la gestione.
per esempio.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
È 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 file e le cartelle sono i seguenti:
/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 principale).
/the full path
non funziona in Linux, devi sfuggire agli spazi con /the\ full\ path
.
Non è necessario cambiare directory. Includi * alla fine del percorso:
mv /my/folder/child/* /my/folder/
Sopra sposta solo i file non nascosti. Per spostare solo i file nascosti usare. *
mv /my/folder/child/.* /my/folder/
Sopra due possono essere combinati in un solo comando:
mv /my/folder/child/{.,}* /my/folder/
Vedi anche: Come spostare tutti i file inclusi i file nascosti nella directory principale tramite *
passare alla sottodirectory ed eseguire il comando seguente per copiare o spostare i file.
es: a è la directory padre e b è la directory secondaria, vogliamo spostare / copiare tutti i file da b a a (directory secondaria nella directory padre).
cd b
cp * ..
mv * ..