În acest articol, vom scrie un script bash pentru a verifica dacă fișierele există sau nu.
Sintaxa:
- test [expresie]
- [expresie]
- [[ expresie ]]
Aici, în exprimare, scriem parametru și nume de fișier . Să vedem câțiva parametri care pot fi utilizați în expresie: –
- – f: Returnează True dacă fișierul există ca fișier comun (obișnuit). -d: returnează True dacă directorul există. -e : returnează True dacă există orice tip de fișier. -c : returnează True dacă fișierul de caractere există. -r : returnează True dacă există un fișier care poate fi citit.
- – În : returnează True dacă există un fișier care poate fi scris . -x : returnează True dacă există un fișier executabil. -p : returnează True dacă fișierul există ca conductă. -S : returnează True dacă fișierul există ca socket. -s : returnează True dacă există un fișier și dimensiunea fișierului nu este zero. -L : returnează True dacă există fișierul link-ului simbolic . -g : returnează True dacă fișierul există și ține apăsat set de flag ID grup este setat.. -G : eu t returnează True dacă fișierul există și deține același ID de grup care este în proces. -k : returnează True dacă fișierul există și steag-ul de biți sticky este setat.
Acum, mai există câțiva parametri pentru comparație între cele două fișiere.
- -ef: returnează True dacă ambele fișiere există și indică același fișier.
Exemplu:
FirstFile -ef SecondFile>
- -nt: returnează True dacă FirstFile este mai nou decât Secondfile.
Exemplu:
log4j
FirstFile -nt FileOld>
- -ot: returnează True dacă FirstFile este mai vechi decât SecondFile.
Exemplu:
FirstFile -ot SecondFile>
Să luăm câteva exemple bazate pe sintaxă:
- [ expresie ]: Mai întâi, creați un fișier numit FirstFile.sh și scrieți următorul script pe el
#!/bin/bash # using [ expression ] syntax and in place # of File.txt you can write your file name if [ -f 'File.txt' ]; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Acum salvați și rulați fișierul folosind următoarea comandă
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ieșire:

Ieșire
Notă: Deoarece File.txt este prezent în sistem. Deci, a tipărit Fișierul există.
greierul meu
- test [expresie]: Acum, modificați scriptul de mai sus în FirstFile.sh după cum urmează
#!/bin/bash # using test expression syntax and in place # of File2.txt you can write your file name if test -f 'File2.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Acum, salvați din nou și rulați fișierul folosind următoarea comandă
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ieșire:

Ieșire
Notă: Deoarece File2.txt nu este prezent în sistem. Deci, fișierul tipărit nu există.
- [[ expresie ]]: modificați din nou scriptul de mai sus în FirstFile.sh, după cum urmează
#!/bin/bash # using [[ expression ]] syntax and in place # of File3.txt you can write your file name if test -f 'File3.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Acum, salvați din nou și rulați fișierul folosind următoarea comandă
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ieșire:

Ieșire
Notă: Deoarece File3.txt este prezent în sistem. Deci, fișierul tipărit există.
Să vedem un exemplu bazat pe parametri:
- Folosind parametrul -d: creați un fișier numit FirstDir.sh și scrieți următorul script în el
!/bin/bash if [[ -d 'GFG_dir' ]] ; # Here GFG_dir is directory and in place of GFG_dir you can write your Directory name then echo 'Directory is exist' # If GFG_dir exist then it will be printed else echo 'Directory is not exist' # If GFG_dir is not exist then it will be printed fi>
Acum Salvați și rulați fișierul folosind următoarea comandă
convertiți șirul în int în java
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Ieșire:

Ieșire
Notă: Deoarece GFG_dir este prezent în sistem. Deci, directorul tipărit există.
În mod similar, puteți utiliza -f , -Este , -În , -r , -c ,etc. ( conform utilizărilor lor ) în loc de -d pentru verificarea existenţei diferitelor tipuri de fişiere.
Să vedem un exemplu bazat pe o comparație a două fișiere:
- Folosind -nt parametru
Creați un nume de fișier Comparison_File.sh și scrieți următorul script
#!/bin/bash # New_file.txt and Old_File.txt are names of two files. if [[ 'New_File.txt' -nt 'Old_File.txt' ]] ; then # This will be printed if Condition is true echo 'New_File.txt is newer than Old_File.txt' else # This will be printed if Condition is False echo 'New_File.txt is not newer than Old_File.txt' fi>
Acum Salvați și rulați fișierul folosind următoarea comandă
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Ieșire:

Ieșire
Notă: Deoarece ambele fișiere sunt prezente în sistem și New_File.txt este mai nou decât Old_File.txt
Să vedem exemplul Verificați dacă fișierul nu există:
Creați un fișier numit Check_Exist.sh și scrieți următorul script în el
#!/bin/bash # using ! before -f parameter to check if # file does not exist if [[ ! -f 'GFG.txt' ]] ; then # This will printed if condition is True echo 'File is not exist' else # This will be printed if condition is False echo 'File is exist' fi>
Acum Salvați și rulați fișierul folosind următoarea comandă
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Ieșire:

Ieșire
Notă: GFG.txt nu este prezent în sistem. Deci, se va imprima Fișierul nu există
Să vedem un exemplu fără a folosi condiția If-else :
Creați un fișier numit Geeks_File.sh și scrieți următorul script în el
#!/bin/bash # If File exist then first statement will be # printed and if it is not exist then 2nd # statement will be printed. [ -f 'GFG_File.txt' ] && echo 'File is exist' || echo 'File is not exist'>
Acum Salvați și rulați fișierul folosind următoarea comandă
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Ieșire:
str.substring în java

Ieșire
Notă: Deoarece GFG_File.txt este prezent în sistem. Deci, fișierul tipărit există.