Puoi provare questo processo alternativo –– rimanere nel percorso
/myuser/downloads/
ma, invece di prima creazione della /myuser/downloads/new/
directory, invece creare una cartella nella /myuser/
directory, con il comando mkdir ../new
, quindi spostare tutti i file downloads
per new
, e, infine, muoversi new
in downloads
. Puoi farlo in una riga, mentre sei nel /myuser/downloads/
percorso, con il comando:
mkdir ../new && mv * ../new && mv ../new ../downloads
In questo caso, non c'è bisogno di preoccuparsi di qualsiasi sorta di "filtro" di file / cartelle, dal momento che new
è allo stesso livello del percorso come downloads
, in modo da poter basta spostare tutto in downloads
a new
, e quindi spostare new
in downloads`.
Tuttavia, se hai già creato la sottocartella new
e non vuoi crearne un'altra, non ti preoccupare, basta cambiare il mkdir
comando sul lato sinistro del primo &&
nel comando mostrato sopra in un mv
comando, spingendo new
verso l'alto nel sentiero; in altre parole, mentre sei ancora dentro /myuser/downloads/
, puoi cambiare mkdir ../new
in mv new ..
. Quindi la sottocartella new
[nel percorso /myuser/downloads/new/
] viene spostata su /myuser/new/
, allo stesso livello di /myuser/downloads/
, e quindi è possibile eseguire il resto del comando come mostrato sopra. Tutti insieme, abbiamo, a partire dal percorso /myuser/downloads/
:
mv new .. && mv * ../new && mv ../new ../downloads
e, poiché si voleva "spostare tutti i file e le cartelle / sottocartelle nella cartella dei download nella sottocartella [ new
]", il gioco è fatto! Se avessi voluto spostare solo i file (o solo le cartelle o [inserire un movimento più granulare degli oggetti]), allora dovresti usare altri comandi che possono "filtrare" gli oggetti, come grep
. I comandi sopra scritti sono sufficienti per i tuoi scopi.
mv * new
, gemerà "non può passare da nuovo a nuovo" o qualcosa di simile. Forsemv -i * new
a te prevenire le sovrascritture.