Nota: - $ utente stamperà i nomi utente degli utenti di accesso corrente.
Se sei curioso di sapere quale versione di Bash Shell è installata nel sistema, possiamo verificarla utilizzando il comando seguente.
$ Bash -Vversion
Output della versione bash.
Creazione ed esecuzione di Bash Script
Cominciamo con la creazione di un semplice file utilizzando qualsiasi editor a tua scelta. Per me, l'editor VI è più a suo agio. Per rendere eseguibile il file, dobbiamo aggiungere shebang (!#) e la posizione dell'interprete Bash all'inizio dello script. Ho creato un testo.file txt e aggiungilo a bash_demo dir nella mia dir di casa che contiene un po 'di testo per scopi demo.
$ touch bash_demo.sh
$ VI BASH_DEMO.sh
Aggiungi le seguenti righe nel tuo editor di testo per una demo di esempio dopo aver creato un file; Se non l'hai fatto, l'editor creerà un nuovo file su scrittura e smettere.
#!/Bin/Bash
Testo CP.txt /tmp /
Echo "File copiato."
Possiamo eseguire lo script usando ./ Prima del file di script, che determina il file DIR corrente.
$ ./BASH_DEMO.sh
Quando eseguiamo lo script, il seguente errore verrà lanciato nel nostro terminale.
Esecuzione iniziale del file bash.
Quando creiamo un file per impostazione predefinita, l'utente non ha l'autorizzazione di esecuzione per il file. Per fornire l'autorizzazione all'esecuzione all'utente, è necessario eseguire il seguente comando.
$ chmod +x bash_demo.sh
Output dopo il permesso concesso.
Copia solo i file da una directory specifica
Per recuperare tutti i file e la dir da un percorso specifico, useremo per loop nello script, quindi filtrare l'unico file utilizzando se condizione. Nell'esempio seguente, eseguiamo il comando CP eseguito solo se l'iteratore era un file determinato -f flag.
#!/Bin/Bash
dpath =/var/log/nginx/*
per file in $ dpath
Fare
if [[-f $ file]]
Poi
CP $ FILE/Home/$ utente/
altro
echo "Non ci sono file nel percorso dato."
fi
Fatto
Copia tutti i file di estensioni specifiche
In questo esempio, copriremo tutti i file con il .Estensione del registro. Dobbiamo aggiungere *.registrare al percorso in modo che iterare l'unico file con .Estensione del registro solo per loop.
#!/Bin/Bash
per file in/var/log/nginx/*.tronco d'albero
Fare
CP $ FILE/Home/$ utente/
Fatto
Copia tutti i file, inclusa la directory
In questo esempio, copriremo tutti i file, comprese le directory, in modo ricorsivo. Per questo, dobbiamo semplicemente aggiungere il comando CP in cui -r determina il recupero in modo ricorsivo della directory.
#!/Bin/Bash
per file in/var/log/*
Fare
cp -r $ file/home/$ utente/
Fatto
Copia i file dal percorso specificato dall'utente
In questo esempio, copriremo i file da Dir specificata dall'utente. Per fare ciò, utilizzeremo il comando di lettura per richiedere il percorso dall'utente, quindi verificare se l'utente fornisce il percorso a DIR o no, che viene eseguito dal flag -d nella condizione. Dopo aver verificato la dir, useremo un ciclo per iterare tutti i file e la direcui. Se la condizione corrisponde, verrà eseguito il seguente comando CP.
#!/Bin/Bash
Echo “Fornisci un percorso verso Dir."
Leggi il percorso
if [[-d $ path]]
Poi
per file in $ path/*
Fare
if [[-f $ file]]
Poi
CP $ FILE/Home/$ utente/
altro
echo "Non ci sono file nel percorso dato."
fi
Fatto
altro
Echo "percorso verso dir è richiesto"
fi
Nella mia casa di casa, ho i seguenti file e dir.
Output Quando si fornisce il percorso a un file.
Output Quando si fornisce il percorso di posizione DIR.
Dopo aver eseguito il file di script, possiamo controllare l'output nella Dir predefinita nello script. Nel mio caso, ho copiato il file nella mia direttrice di casa e il risultato è il risultato.
Conclusione
In questo articolo, apprendiamo come copiare i file utilizzando Bash Scripting. Possiamo usare molte altre operazioni come un ciclo, if-else, ecc. Bash Scripting è più efficace quando si lavora con più comandi per eseguire attività specifiche. Spero ti piaccia questo articolo sulla copia di file usando uno script bash.