Come spostare tutti i file da una cartella all'altra utilizzando la riga di comando?

164

Mi piacerebbe sapere come posso spostare tutti i file da una cartella in un'altra cartella con una riga di comando.

Diciamo che sono nella mia cartella Download e ci sono 100 file che vorrei spostare nella cartella Video, senza dover scrivere il nome di tutti i file.

    
posta Michael 06.08.2012 - 17:14

8 risposte

228

Apri un terminale ed esegui questo comando:

mv  -v ~/Downloads/* ~/Videos/

Sposterà tutti i file e le cartelle dalla cartella Download alla cartella Video.

Per spostare tutti i file, ma non le cartelle:

Se sei interessato a spostare tutti i file (ma non le cartelle) dalla cartella Download alla cartella Video, usa questo comando

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

Per spostare solo i file dalle cartelle Download, ma non dalle sottocartelle:

Se vuoi spostare tutti i file dalla cartella Download, ma non tutti i file all'interno delle cartelle nella cartella Download, usa questo comando:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

qui, l'opzione -maxdepth specifica quanto deve essere cercato deep find, 1 significa, solo la directory specificata nel comando find. Puoi provare a usare 2 , 3 anche per testare.

Vedi la pagina di man di Ubuntu di Ubuntu per una spiegazione dettagliata     

risposta data Anwar 06.08.2012 - 17:18
17
mv ~/Downloads/* ~/Videos

Sposterà tutti i file comprese le sottocartelle nella directory che vuoi mv . Se vuoi cp (copia) o rm (rimuovi) avrai bisogno dell'opzione -r (ricorsiva) per includere le sottocartelle.

    
risposta data user223289 08.12.2013 - 04:24
5

È possibile utilizzando rsync , ad esempio:

rsync -vau --remove-source-files src/ dst/

dove:

  

-v , --verbose : aumenta la verbosità.

     

-a , --archive : modalità di archiviazione; equivale a -rlptgoD (no -H , -A , -X ).

     

-u , --update : salta file più recenti sul ricevitore.

     

--remove-source-files Questo indica a rsync di rimuovere dal lato di invio i file (ovvero le non-directory) che fanno parte del trasferimento e sono stati duplicati con successo sul lato ricevente.

Se disponi di privilegi di root, prefisso con sudo per ignorare potenziali problemi di autorizzazione.

    
risposta data kenorb 06.06.2015 - 17:08
2

Usa

mv -v ~/rootfolder/branch/* ~/rootfolder

Spero che questo aiuti. Perché ho avuto lo stesso dolore e ho perso un sacco di tempo per correggere il mio errore.

    
risposta data Udit Chugh 26.01.2015 - 00:06
1
  1. Vai alla riga di comando e entra nella directory in cui vuoi spostarlo con cd folderNamehere
  2. Digita pwd . Questo stamperà la directory che vuoi spostare anche.
  3. Quindi passa alla directory in cui sono presenti tutti i file con cd folderNamehere
  4. Ora per spostare tutti i tipi di file mv *.* typeAnswerFromStep2here

Questo sposta tutti i file da quella directory all'altra.

    
risposta data jrh 12.09.2013 - 14:07
0

Per spostare una directory con o senza contenuto al suo nuovo nome proprio come useresti il ​​comando mv per rinominare un file:

mv -T dir1 dir2

dove:

  • -T considera la destinazione come un file normale
  • dir1 è il nome originale della directory
  • dir2 è il nuovo nome della directory

NB: dir2 non deve esistere.

Spero che questo risparmi un sacco di tempo, come noob, prima di questo, vorrei creare una directory con il nuovo nome e quindi spostare il contenuto della directory nella directory creata in precedenza.

Utilizza per sottodirectory

Questo comando è utile quando molti file sono stati salvati in una sottocartella della directory di destinazione, ad esempio Downloads/mp4 . In questo esempio, se si esegue mv -T Downloads/mp4 Videos , la sottocartella mp4 viene rimossa e tutti i file contenuti all'interno vengono spostati nella cartella Video.

    
risposta data Feyisayo Sonubi 09.12.2015 - 08:33
0

Per il caso semplice:

mv ~/Downloads/* ~/Videos

Se vuoi spostare anche i file di punti, imposta l'opzione dotglob della shell.

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Questo lascia l'opzione di shell impostata.

Per utilizzare una volta dotglob, esegui i comandi in una sotto-sequenza:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
    
risposta data Hontvári Levente 22.01.2018 - 11:16
0

provalo

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

tipo con l'argomento -type puoi specificare type file.on questa istruzione che è il file medio.se usa -d che significa directory.

-iname: il metodo più comune e ovvio per cercare un file è usare il suo argomento -name. Se non sei sicuro della sua sensibilità alle maiuscole / minuscole puoi usare l'argomento -iname

mv {} e infine per specificare la directory di destinazione e quindi spostare i file lì usando l'argomento mv {}

    
risposta data pedram shabani 01.04.2018 - 18:54

Leggi altre domande sui tag