Pariksa naha file atanapi folder aya atanapi henteu (sareng langkung) kalayan IF loop

Kuring henteu nempatkeun nanaon Bash, sareng éta nalika kuring lebet kana dunya Python anu saé kuring parantos hilap sakedik ngeunaan rerencangan anu sanés anu ngabantosan pisan ieu

Di dieu kuring nempatkeun sababaraha hal pikeun peminat Bash, sakumaha judulna ... Kuring bakal nunjukkeun anjeun cara mariksa naha atanapi henteu aya file atanapi folder dina sistem, ngan ukur ngagunakeun: if

Kami badé ngadamel file .sh sareng masihan ijin éksékusi, pikeun ieu cukup pikeun nempatkeun paréntah ieu dina terminal:

tés touch.sh && chmod + x test.sh

Ieu anu anjeunna lakukeun nyaéta nyiptakeun file (tés toél.sh) sareng ogé masihan anjeun idin palaksanaan (chmod + x test.sh)

Maka hayu urang nyerat ieu di dieu:

if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi

Naon ieu?

Basajan 😀

Dina garis kahiji - » upami [-d / opt /];

Di dieu urang naros, naha diréktori / opt / aya? Leres diréktori / folder, sabab dina -d hartosna diréktori atanapi folder.
Maka upami éta aya urang bakal nyetak dina terminal «Leres, éta memang aya.»(Ieu garis 2 sareng 3)
Upami teu kitu sareng / opt / TEU aya, maka kami bakal nyetak «Henteu aya»(Garis 4 sareng 5)
Teras di garis pamungkas (nomer 6) urang tutup upami sareng éta waé.

Tulisan anu aya hubunganana:
Ngadegkeun konéksi jaringan antara PC sareng mesin virtual Virtualbox

Ngalakukeun tés, éta bakal nunjukkeun yén / opt / memang aya.

Upami anjeun hoyong kuring nunjukkeun téks anu sanés (anu teu aya) robih / pilih / kanggo folder sanés anu teu aya dina sistem anjeun, contona: / asd /

Sakumaha anjeun tiasa tingali, -d ngabantosan kami pikeun terang upami diréktori aya, ogé ayeuna upami urang ngarobih -d ka -f nyaéta pikeun mariksa ayana file (-d = diréktori, -f = file / file)

Contona:

if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi

Ieu daptar pilihan:

-d - »Pariksa naha aya diréktori tangtu aya

-f - »Pariksa naha aya file anu tangtu

-w - »Pariksa naha file anu tangtu ngagaduhan ijin nyerat

-x - »Pariksa naha file tangtu ngagaduhan ijin palaksanaan.

Sareng ogé teu langkung seueur kanggo nambihan 🙂

Kuring terang ieu bakal mangpaat pisan sareng pikaresepeun pikeun anu resep program di Bash 😉

Wasalam


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

42 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   Hugo cenahna

    Cara séjén pikeun ngalaksanakeunana tanpa upami… maka..dugikeun:

    test -f /etc/hosts && elcomando

    Atanapi ogé

    test ! -f /etc/hosts && echo "no se encontró el archivo"

    Jst.

    1.    KZKG ^ Gaara cenahna

      Leres 😀
      … O_O… Naha anjeun Hugo, Hugo ti Kuba? … Ngagunakeun Windows8, WTF !!!

      1.    Hugo cenahna

        Leres enya, kuring nuju kenal sareng OS ieu sareng upami kuring kedah terang-terangan, hiji-hijina hal anu kuring mendakan gunana nyaéta manajer salinan, upami sanés kuring sacara pribadi nyeri, utamina antar muka hibridna sareng aplikasi metro. Kuring resep kirang ti Vista sareng 7 (sanaos rada épisién ti ieu), anu kuring henteu resep ogé. Hiji-hijina hal anu kuring anggo pikeun nyaéta maén NFS13 sareng Skyrim, tapi OS ieu nyandak seueur rohangan anu kuring kedah mupus partisi Linux abdi [snif].

        Nanging, pikeun katenangan anjeun, kuring bakal nyaritakeun yén dinten anu kamari kamari kuring ngaunduh Arch ISO pikeun Januari sareng kuring rencanakeun pikeun masihan sakedik uji dina vérsi x86-64 na, pas kuring nampi repo (bakal anjeun gaduhna?). Ayeuna nalika kuring ningali éta nganggo paket anu ditandatanganan sacara standar, éta masihan kuring langkung percaya diri pikeun teuleum.

        Sareng bapak kuring ogé ngawartosan yén anjeunna bakal ngintunkeun kuring Sony Xperia, anu kuring hoyong mangpaatkeun pikeun diajar sababaraha program pikeun Android, anu mangrupikeun kahoyong anu ditunggu-tunggu. Janten tenang, abdi teu acan angkat ka sisi gelap tanaga, buahahahaha 😉

  2.   patz cenahna

    tés lalaki

    1.    msx cenahna

      Pasti.

  3.   RAW-Dasar cenahna

    Wenas! ..

    Urang tiasa ngadamel anu sami .. ..tapi diréktori dikaluarkeun salaku parameter ..

    if [ -d $1 ];
    then
    echo "Sí, sí existe."
    else
    echo "No, no existe"
    fi

    Sareng urang nyebatna salaku:

    ./test.sh / opt /

    Salam ..

  4.   nyalametkeun cenahna

    IF sanes siklus xD

  5.   Gregory Pedang cenahna

    Éta cocog sareng kuring sapertos sarung tangan pikeun skrip anu kuring lakukeun. Naha valid ngagunakeun kartu liar? Salaku conto, pikeun milarian terang upami aya .mp4s teras lumpatkeun naon-naon.

    upami [-f * .mp4];
    ...

    1.    RAW-Dasar cenahna

      Leres, éta leres-leres valid ..

      Bahkan ngalangkungan parameter .. "* .mp4"

      1.    RAW-Dasar cenahna

        Contona,

        if [ -f $1 ];
        then
        rm -r $1
        else
        ls
        fi

        Upami anjeun nyauran: ./test.sh * .mp4

        Upami mendakan file .mp4 éta ngahapus .. .. tapi henteu daptar file dina diréktori éta ..

        1.    Gregory Pedang cenahna

          Hatur nuhun kana tanggapan sareng kiat! 🙂

        2.    Joaquín cenahna

          Anjeun lasut f xD

          rm -rf $ 1

          Ieu langkung pikaresepeun!

        3.    b1tblu3 cenahna

          Éndah !!!, Saban poé kuring langkung bogoh ka Linux, Windows parantos diturunkeun ka sababaraha juru gelap Hard Drive kuring, anu badé dipupus pikeun masihan jalan ka Linux.

          1.    RAW-Dasar cenahna

            Alus pisan! .. ..terus léngkah salajengna .. sareng kaluarkeun ..

            6 bulan kamari perkawis Kuring ngan ukur gaduh GNU / Linux dina sadaya mesin kuring sareng kuring henteu peryogi langkung .. ..teu W $ .. atanapi Anggur .. .. sareng kuring langkung resep sapertos kitu .. 😉

            Sareng kuring nginfeksi lingkungan kuring .. kumargi sadayana ningali kuring sareng Arch kuring, gancang, épisién sareng bageur .. .. sareng aranjeunna nyungkeun kuring masang Linux .. ..hehehehe .. .. 😀

        4.    Inukaze cenahna

          Anjeun tiasa ogé mariksa aranjeunna pikeun sababaraha ekstensi, anjeun tiasa nganggo anu sapertos kitu

          #! / bin / bash
          Diréktori = $ HOME / Undeuran

          upami [$ Diréktori]; satuluyna
          gema "Ieu Daptar Jenis File:"
          gema "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
          ls {* .mp?, *. wav, *. fla, *. aud * .midi}
          fi

          ngagunakeun {} ngamungkinkeun anjeun netepkeun sababaraha ekstensi dina hal ieu, panggunaan "?" , mangrupikeun kartu liar, anu ngamungkinkeun anjeun nyandak "Karakter Naon waé".

          Kuring miharep éta mantuan anjeun

        5.    Pedro cenahna

          Kuring nyarankeun paréntah panggihan [diréktori] [search_pattern] –exec [paréntah] {} \

      2.    Carlos cenahna

        Éta henteu tiasa dianggo, kuring nempatkeun file ieu dina diréktori:
        AB20160420.TXT
        AB20160421.TXT
        AB20160422.TXT
        AB20160423.TXT
        AB20160424.TXT
        AB20160425.TXT
        milarian.sh

        #! / bin / bash
        PATH = / tmp / TEST
        cd $ ROUT
        ls -la | awk '{nyitak »« $ 9}'
        upami [[-f AB.TXT]]; satuluyna
        kamandang »Lebetkeun IF upami aya AB
        .TXT "
        fi
        upami [-f AB20160422.TXT]; satuluyna
        kamandang "input pikeun file AB khusus"
        fi

        nalika kuring nempatkeun [-f AB.TXT] méré kasalahan
        nalika kuring nempatkeun [[-f AB
        .TXT]] henteu masihan kasalahan tapi henteu mendakan file na
        éta ngan ukur tiasa dianggo nalika kuring nempatkeun file anu khusus, contona:
        upami [-f AB20160422.TXT]; satuluyna

        Abdi henteu tiasa ngerjakeun éta kartu liar * atanapi?

        1.    Pedro cenahna

          #! / usr / bin / env bash
          #.encoding = utf-8.

          NGARANGKEUN

          EXIT_OK = 0
          EXIT_BAD = 66

          BOLD = »\ 033 [1m»
          NC = »\ 033 [0m»
          RED = »\ 033 [31m»

          upami [! "$ 1"];
          saterusna
          gema "leungit parameter"
          kaluar $ EXIT_BAD
          fi

          cd "$ 1"

          file = »ls -h1 $ 1»

          pikeun file dina $ ($ file); ngalakukeun
          echo -e "anjeun tiasa ngalakukeun nanaon nganggo $ BOLD $ file $ nc didieu"
          Puguh

          kaluar $ EXIT_OK

  6.   msx cenahna

    @KZ, carioskeun langkung seueur perkawis ieu: "sareng éta sabab kuring asup ka dunya Python anu saé"!

    1.    KZKG ^ Gaara cenahna

      HAHAHAHA nah ... saeutik-saeutik 🙂
      Kuring masih ngan ukur énggal pikeun Python, boro-boro waktos pikeun ngahaturanan jam sareng jam, janten kuring laun enya, lambat tapi yakin dina diajar 😀

  7.   audoban cenahna

    Hatur nuhun pisan 😀 mung kamari kuring mikir kumaha ngalakukeun ieu.

  8.   reichsk cenahna

    ieu sareng ncurses hébat 🙂

  9.   Jazeco cenahna

    dina 1 kecap ... LUCU!
    Lami-lami kuring nyampurnakeun skrip pikeun ngaunduh tina Internét, tapi kuring ngalaman masalah éta ngaunduh file anu dipénta na 1 deui sareng henteu tiasa mastikeun ayana 1ro.
    Tuto saé pisan.

  10.   zulan cenahna

    Kontribusi anu luar biasa, di dieu ti Chili diapresiasi.
    Unggal dinten langkung LINUX pikaresepeun kaget kuring,
    Hidup Software Gratis MIERDAAAA.

  11.   david cenahna

    ngawula pikeun
    parios naha file asalna tina diréktori

  12.   Panyawat cenahna

    Upami kuring hoyong mariksa ayana file naon dina jalur «/ tmp / panarima», laksanakeun komando naon waé, kumaha éta?

    Kuring bakal pisan bersyukur

    Wasalam

  13.   Juan cenahna

    Dear, sareng pikeun nangtoskeun ku IF upami file parantos dieusian lengkep ???. Kuring naroskeun ieu sabab nalika anjeun ngeusian file pikeun pangiriman, éta tiasa nyandak éta bahkan ku satengah data.

    Salam sareng hatur nuhun kana réspon anjeun.

  14.   Inukaze cenahna

    Nya kuring pikir anjeun ogé kedah nambihan conto, sapertos "Cek yén teu aya" file "atanapi" diréktori "sapertos contona

    pikeun mariksa yén éta TEU aya, contona nganggo variabel->

    A Diréktori

    #! / bin / bash
    Diréktori = »$ HOME / Diréktori Tés»
    File = »$ HOME / File Tés»

    upami [! -d "$ Diréktori"]; satuluyna
    gema "Teu aya $ Diréktori"
    gema "Nyiptakeun ->" $ Diréktori "
    mkdir "$ Diréktori"
    lamun henteu
    kamandang "Diréktori" $ Diréktori "parantos aya
    fi

    upami [! -d "$ File"]; satuluyna
    gema "File $ teu aya"
    gema "Nyiptakeun ->" $ File "
    toél "$ File"
    lamun henteu
    kamandang "File" $ File "parantos aya
    fi

    1.    Katekyo cenahna

      nalika anjeun damel mkdir parios engké upami terminal tiasa nyiptakeunna sabab éta tiasa ngarobih bal upami éta folder salaku root atanapi sistem hhah

  15.   Julius vinachi cenahna

    Salam KZKG ^ Gaara pamundut sakumaha anu kuring lakukeun pikeun nganggo curl. Abdi hoyong terang kumaha kuring ngalakukeun ti konsol ka ping url pikeun ningali naha éta aya contona http://portal.com/directorio/archivo1.php Dimana file1 bakal nyimpen IP kunjungan, éta pikeun ngawaskeun tim anu kuring kedah ngadamel pin éta unggal satengah jam sahingga kuring sadar kana IP umum sabab éta robah tina waktos ka waktos sareng kuring henteu tiasa nyambung ku ssh.

    Salam hatur nuhun sateuacana Gusti ngaberkahan anjeun.

    1.    KZKG ^ Gaara cenahna

      Hello misalna,

      Kahiji, anjeun kedah nyebatkeun yén variabel IP (contona) mangrupikeun eusi file éta, pikeun ieu anjeun kedah:
      1. Unduh file na
      2. Ningali eusina sareng kéngingkeun IP ti ditu
      3. Éta IP mangrupikeun variabel

      Contona:
      Di dieu urang unduh file - »wget http://portal.com/directorio/archivo1.php -o file.html
      Teras we napelkeun variabel eusina: - »: $ {IP: =` cat file.html`}
      .. asumsina yén eusi file éta ngan ukur gaduh IP, upami henteu, anjeun kedah dianggo sareng grep, awk atanapi sirah.

      Sakali anjeun gaduh IP salaku variabel, sésana mangrupikeun hal anu paling saderhana di dunya 🙂

      Upami anjeun hoyong nyerat kuring kana email (kzkggaara [at] desdelinux [dot] net) éta kuring bakal ngabantosan anjeun

      1.    Julius vinachi cenahna

        Hatur nuhun pisan kzkggaara hatur nuhun pisan.

  16.   Natalia cenahna

    Halo, kuring henteu pati ngartos ngeunaan komputasi sareng kuring henteu terang naha éntri ieu aya hubunganana sareng masalah anu kuring gaduh.

    Kuring mairan upami anjeun maca kuring, sanaos tulisanna ti sataun katukang:
    Tétéla kuring nyiptakeun folder dina desktop kuring pikeun nyimpen sababaraha video. Nya, kuring mupus éta pidéo kusabab kuring henteu peryogi deui sareng folder ieu ngawartosan yén éta teu aya (sanaos katingali dina desktop kuring).

    - Éta mangrupikeun masalah munggaran anu kuring gaduh:
    Abdi henteu tiasa mupus folder na.

    - Masalah anu kadua sareng saur kuring langkung penting:
    Dina usaha mupus folder, kuring nempatkeun folder PHOTOS. Ayeuna nalika kuring muka folder anu "teu aya" éta kosong sareng PHOTOS henteu aya.

    Kumaha carana abdi tiasa kéngingkeun poto na? Kuring parantos masihan pilihan dina folder "Tembongkeun dokumén anu disumputkeun" tapi folder PHOTOS henteu némbongan.

    Kuring miharep anjeun tiasa terang kumaha éta direngsekeun.
    Hatur nuhun.

    1.    valdo cenahna

      Aya dua pangguna anu utama: root sareng your_user (natalia contona). Duanana ngagaduhan folder pribadi. your_user in / home and root in / (root diréktori). Ku ngaklik katuhu dina folder tingali saha éta milik. Upami éta akar sareng pangatur file anjeun nganggo sudo atanapi gksu atanapi kdesu gumantung kana lingkungan anu anjeun anggo lebet kana diréktori akar -> root -> Desktop sareng anjeun panginten mendakan poto sareng anjeun tiasa mupus folder na. Sababaraha distro nalika anjeun sanés gaduh file atanapi diréktori sareng teu ngagaduhan ijin aksés nyarios yén diréktori / file henteu aya. Upami anjeun gaduh sareng anjeun henteu root, lakukeun hal anu sami sareng file manager ku sudo, jsb sareng buka diréktori root -> / home -> personal_folder -> Desktop sareng tingali naha poto na aya sareng naha anjeun tiasa mupus folder na.
      Upami ieu henteu tiasa dianggo, anjeun kedah ningali pilihan sanés tina terminal (konsol).

  17.   Pedro Manuel Aguayo Munoz cenahna

    Hai, kumaha damang? Kuring nuju damel di bash sareng kuring hoyong terang kumaha ngémutan upami aya diréktori dilebetkeun tina keyboard, contona

    #! / bin / bash
    maca jalur
    #Enter ~ / Desktop
    # Teras kuring nyobian nganapigasi diréktori éta
    cd $ jalur
    # Kuring kéngingkeun pesen bash ieu: cd: ~ / Desktop: file atanapi diréktori henteu aya

    Patarosan abdi, naon anu kuring tiasa laksanakeun sahingga kuring ngalebetkeun tina keyboard sareng nyandak éta salaku jalur diréktori?

  18.   Miguel cenahna

    Sareng kumaha kuring terang upami aya grup,

  19.   heidi cenahna

    saé kuring ngagaduhan masalah di canaima nalika kuring mencét tombol cunaguaro éta nyatakeun yén teu aya file atanapi diréktori sabab éta bakal ngatasi masalah éta sareng sésana henteu kabuka cunaguaro punten hatur nuhun.

  20.   Carlos cenahna

    Kumaha anjeun ngalakukeun upami dina BASH upami nami nami gaduh rohangan?
    Contona:
    Data April.xlsx

    Pikeun naroskeun naha file na aya

    1.    Manuel Alcocer Jiménez cenahna

      Carlos, sapertos kieu:

      upami [["$ variable" == Data \ bulan \ tina \ April.xlsx]]; teras kamandang 'pertandingan'; fi

      Anjeun ogé tiasa:
      upami [["$ variable" == 'Data kanggo sasih April.xlsx']]; teras kamandang 'pertandingan'; fi

      Pilihan séjén:
      [["$ Variable" == 'Data pikeun bulan April.xlsx']] && kamandang 'cocog' || kamandang 'henteu cocog'

      Di sababaraha daérah anu poék dina internét nyarankeun pikeun nganggo [[]] tibatan [], sareng upami anjeun badé ngabandingkeun nomer maka: ((variable> = 3)) && gema 'variabel langkung ageung tibatan atanapi sami sareng 3' || echo 'variable kirang ti 3'

      Ku alatan éta, pikeun nomer:

      upami ((nomer! = 4)); maka kamandang "$ {nomer} sanés 4"; lain kamandang "$ {nomer} nyaéta 4"; fi

  21.   Cesar Matheus cenahna

    kumaha anjeun tiasa ngadamel kode kanggo ngesahkeun upami diréktori ngagaduhan téks anu khusus, pikeun tiasa ngédit na.

    contona:

    upami (téks1)

    teu nanaon

    lamun henteu

    ngarobah téks1 janten téks2

  22.   Miguel cenahna

    patarosan, kumaha carana pikeun mariksa unggal 15 detik upami file na aya atanapi henteu, hatur nuhun.

  23.   sisi susukan cenahna

    pantun,
    ieu:
    upami [-w / home / Komun / Log / ti]; satuluyna
    Pilarian terang upami file na tiasa ditulis. Tapi éta dumasar kana ijin pangguna. Naha éta tiasa dilakukeun pikeun milarian terang naha kelompok atanapi anu sanésna ngagaduhan ijin?