GNU/Linux >> Linux Esercitazione >  >> Linux

Come spostare un gran numero di file in Linux

Per spostare i file da una directory all'altra, l'icona 'mv Il comando ' è usato in Linux. Questo comando è disponibile in Linux per impostazione predefinita e può essere utilizzato per spostare file e directory.

La sintassi da utilizzare per comando mv è:

$ mv file1 file2 /tmp

Se vogliamo spostare file, diciamo, della stessa estensione (es. txt ) o numerati in modo incrementale (es. file_1 , file_2 , ecc.), i caratteri jolly possono essere utilizzati per specificare tutti quei file invece di digitare ogni nome.

$ mv *.txt /tmp
$ mv file_* /tmp

Fondamentalmente, "mv ' può avere un numero qualsiasi di argomenti, che sono i file o le directory da spostare. L'ultimo argomento è la directory di destinazione in cui devono essere spostati.

Problema con lo spostamento di un numero elevato di file

I sistemi Linux hanno un limite predefinito sul numero massimo di argomenti che possono essere utilizzati con un singolo comando. Questo limite varia da sistema a sistema in base alla dimensione dello stack.

Pertanto, se viene specificato un numero molto elevato di file con il carattere jolly con 'mv ', Per esempio. oltre centomila file, genera un errore:"Lista di argomenti troppo lunga ”.

Ad esempio, nell'immagine seguente, la cartella contiene 253420 File. Pertanto, dà l'errore di cui sopra quando proviamo a spostarli.

$ ls -l | wc -l
$ ls | head -1000
$ mv file_* /tmp

Soluzione:usa il comando "Trova"

Per risolvere questo problema, utilizziamo il "trova ' comando. Il "trova Il comando ' fondamentalmente cerca i file nelle directory in base a parametri diversi.

Eseguiamo "trova ' nella stessa directory dei file che vogliamo spostare. Quindi utilizziamo il '-exec' parametro di "trova ' che ti permetterà di eseguire qualsiasi comando sull'output di trova.

Eseguiamo "mv ' con '-exec' parametro.

$ find . -name "file_*" -exec mv  {} /tmp \;

Qui, il primo argomento, '.' ((punto) directory corrente) è la directory in cui trovare i file. L'argomento “-name” e la stringa successiva specifica l'espressione che utilizza i file richiesti che possono essere elencati.

Quindi specifichiamo "mv ' comando dopo un argomento '-exec' . Le parentesi aperte '{ }' sono un segnaposto per l'argomento che deve essere utilizzato dall'output di find.

Puoi confermare eseguendo quanto segue e verificare che i file siano stati spostati correttamente in '/tmp' .

$ ls -l /tmp | wc -l

Lettura correlata :Come copiare un gran numero di file in Linux

Conclusione

In questo articolo, abbiamo visto come spostare un gran numero di file da una directory all'altra e aggirare con successo l'"Elenco di argomenti troppo lungo ' errore in Linux.

Se hai commenti o domande, faccelo sapere nei commenti qui sotto!


Linux
  1. Come aumentare il limite del numero di file aperti in Linux

  2. Come rinominare i file in Linux

  3. Come trovare file di grandi dimensioni Linux con i comandi find e du

  4. Come posso spostare i file con xargs su Linux?

  5. Come spostare una partizione in GNU/Linux?

Come copiare un gran numero di file in Linux

Come Gzip file di grandi dimensioni (100 GB+) più velocemente in Linux

Come eseguire il ping di un numero di porta in Linux

Come utilizzare più comandi in Linux per leggere file di testo di grandi dimensioni

Come contare il numero di file in una directory in Linux

Come comprimere un file in Linux