V tomto článku napíšeme bash skript na kontrolu, či súbory existujú alebo nie.
Syntax:
- test [výraz]
- [výraz]
- [[výraz]]
Tu vo výraze píšeme parameter a názov súboru . Pozrime sa na niektoré parametre, ktoré možno použiť vo výraze: –
- – f: Ak súbor existuje ako bežný (obyčajný) súbor, vráti hodnotu True. -d: vráti hodnotu True, ak adresár existuje. -e : Vráti hodnotu True, ak existuje akýkoľvek typ súboru. -c : Ak súbor znakov existuje, vráti hodnotu True. -r : Ak existuje čitateľný súbor, vráti hodnotu True.
- – In : Ak existuje zapisovateľný súbor, vráti hodnotu True . -x : Ak existuje spustiteľný súbor, vráti hodnotu True. -p : Ak súbor existuje ako kanál, vráti hodnotu True. -S: Ak súbor existuje ako soket, vráti hodnotu True. -s : vráti True, ak súbor existuje a veľkosť súboru nie je nulová. -L: Vráti True, ak súbor symbolického odkazu existuje . -g : Vráti True, ak súbor existuje a je nastavený príznak hold set group id.. -G : ja t vráti True, ak súbor existuje a obsahuje rovnaké ID skupiny, ktoré sa spracováva. -k : Vráti True, ak súbor existuje a je nastavený príznak sticky bit.
Teraz existuje niekoľko ďalších parametrov na porovnanie medzi týmito dvoma súbormi.
- -ef: Vráti hodnotu True, ak existujú oba súbory a označujú rovnaký súbor.
Príklad:
FirstFile -ef SecondFile>
- -nt: Vráti hodnotu True, ak je prvý súbor novší ako druhý súbor.
Príklad:
filmy123 až
FirstFile -nt FileOld>
- -ot: Vráti hodnotu True, ak je prvý súbor starší ako druhý súbor.
Príklad:
FirstFile -ot SecondFile>
Zoberme si niekoľko príkladov založených na syntaxi:
- [ výraz ]: Najprv vytvorte súbor s názvom FirstFile.sh a napíšte doň nasledujúci skript
#!/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>
Teraz uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Výkon :

Výkon
Poznámka: Keďže súbor File.txt je prítomný v systéme. Takže to vytlačilo Súbor existuje .
- test [výraz]: Teraz upravte vyššie uvedený skript v súbore FirstFile.sh nasledovne
#!/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>
Teraz znova uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Výkon :

Výkon
Poznámka: Pretože súbor2.txt nie je prítomný v systéme. Takže to vytlačilo Súbor neexistuje .
- [[ výraz ]]: Znova upravte vyššie uvedený skript v súbore FirstFile.sh nasledovne
#!/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>
Teraz znova uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Výkon :
binárny vyhľadávací strom

Výkon
Poznámka: Keďže v systéme je prítomný súbor File3.txt. Takže to vytlačilo Súbor existuje .
Pozrime sa na príklad založený na parametroch:
- Použitie parametra -d: Vytvorte súbor s názvom FirstDir.sh a napíšte do nej nasledujúci skript
!/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>
Teraz uložte a spustite súbor pomocou nasledujúceho príkazu
np nuly
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Výkon :

Výkon
Poznámka: Keďže GFG_dir je prítomný v systéme. Takže vytlačil Adresár existuje.
Podobne môžete použiť -f , -To je , -In , -r , -c ,atď. (podľa ich použitia) namiesto -d na kontrolu existencie rôznych typov súborov.
Pozrime sa na príklad založený na porovnaní dvoch súborov:
- Použitím -nt parameter
Vytvorte názov súboru Comparison_File.sh a napíšte nasledujúci skript
#!/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>
Teraz uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Výkon :

Výkon
Poznámka: Pretože oba súbory sú v systéme prítomné a New_File.txt je novší ako Old_File.txt
Pozrime sa na príklad Skontrolujte, či súbor neexistuje:
Vytvorte súbor s názvom Check_Exist.sh a napíšte do nej nasledujúci skript
#!/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>
Teraz uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Výkon :

Výkon
Poznámka: GFG.txt sa v systéme nenachádza. Takže sa vytlačí Súbor neexistuje
zoradený zoznam polí v jazyku Java
Pozrime sa na príklad bez použitia podmienky If-else:
Vytvorte súbor s názvom Geeks_File.sh a napíšte doň nasledujúci skript
#!/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'>
Teraz uložte a spustite súbor pomocou nasledujúceho príkazu
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Výkon :

Výkon
Poznámka: Keďže súbor GFG_File.txt je prítomný v systéme. Takže to vytlačilo Súbor existuje .