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!