Periksa sama ada fail atau folder ada atau tidak (dan banyak lagi) dengan gelung IF

Saya tidak meletakkan apa-apa Bash, dan semasa saya memasuki dunia Python yang indah, saya sedikit lupa tentang rakan lain yang banyak membantu saya 🙂

Di sini saya memberikan sesuatu kepada peminat Bash, seperti judulnya ... Saya akan menunjukkan kepada anda bagaimana untuk memeriksa sama ada fail atau folder ada dalam sistem atau tidak, hanya menggunakan: if

Kami akan membuat fail .sh dan memberikan izin pelaksanaan, kerana ini cukup untuk meletakkan perintah berikut di terminal:

ujian sentuh.sh && chmod + x test.sh

Ini yang dia buat ialah membuat fail (ujian sentuh.sh) dan juga memberi anda kebenaran pelaksanaan (chmod + x test.sh)

Kemudian mari tulis perkara berikut di dalamnya:

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

Apa ini?

Ringkas 😀

Di barisan pertama - » jika [-d ​​/ opt /];

Di sini kita bertanya, adakah direktori / opt / ada? Ya direktori / folder, kerana -d bermaksud direktori atau folder.
Sekiranya ada, kita akan mencetak di terminal «Ya, memang ada.»(Ini adalah baris 2 dan 3)
Jika tidak dan / opt / TIDAK wujud, maka kami akan mencetak «Tidak, ia tidak wujud»(Garis 4 dan 5)
Kemudian di baris terakhir (nombor 6) kita tutup jika dan itu sahaja.

artikel berkaitan:
Menjalin hubungan rangkaian antara komputer maya PC dan Virtualbox

Lakukan ujian, ia akan menunjukkan bahawa / opt / memang ada.

Sekiranya anda mahu saya menunjukkan teks yang lain (yang tidak ada) ubah / pilih / untuk folder lain yang tidak ada dalam sistem anda, contohnya: / asd /

Seperti yang anda lihat, -d membantu kita untuk mengetahui apakah direktori itu ada, sekarang jika kita menukar -d ke -f itu adalah untuk memeriksa keberadaan file-d = direktori, -f = fail / fail)

Sebagai contoh:

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

Berikut adalah senarai pilihan:

-d - »Periksa sama ada direktori tertentu ada

-f - »Periksa sama ada fail tertentu ada

-w - »Periksa sama ada fail tertentu mempunyai kebenaran menulis

-x - »Periksa sama ada fail tertentu mempunyai izin pelaksanaan.

Dan tidak banyak yang perlu ditambahkan 🙂

Saya tahu ini akan sangat berguna dan menarik bagi mereka yang suka memprogram di Bash 😉

salam


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Hugo kata

    Cara lain untuk melakukannya tanpa jika… maka..selain:

    test -f /etc/hosts && elcomando

    Atau juga

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

    Dan lain-lain.

    1.    KZKG ^ Gaara kata

      Betul 😀
      ... O_O ... Adakah anda Hugo, Hugo dari Cuba? ... Menggunakan Windows8, WTF !!!

      1.    Hugo kata

        Baiklah, saya sudah biasa dengan OS ini dan jika saya harus berterus terang, satu-satunya perkara yang saya dapati berguna adalah pengurus salinan, jika tidak, saya sendiri menganggapnya sebagai perosak, terutamanya antara muka hibridnya dan aplikasi metro. Saya kurang suka Vista dan 7 (walaupun lebih cekap daripada ini), yang saya juga tidak suka. Yang saya gunakan hanyalah bermain NFS13 dan Skyrim, tetapi OS ini memerlukan banyak ruang sehingga saya terpaksa memadam partisi Linux saya [snif].

        Namun, demi ketenangan anda, saya akan memberitahu anda bahawa sehari sebelumnya saya memuat turun Arch ISO untuk bulan Januari dan saya merancang untuk memberikannya sedikit ujian dalam versi x86-64nya, sebaik sahaja saya mendapat repo (adakah anda akan memilikinya?). Sekarang kerana saya melihatnya menggunakan pakej yang ditandatangani secara lalai, ini memberi saya lebih banyak keyakinan untuk menyelami.

        Dan ayah saya juga memberitahu saya bahawa dia akan mengirimi saya Sony Xperia, yang ingin saya manfaatkan untuk mempelajari beberapa pengaturcaraan untuk Android, yang merupakan permintaan yang belum selesai. Jadi tenang, saya belum pergi ke sisi gelap kekuatan, buahahahaha 😉

  2.   patz kata

    ujian lelaki

    1.    MSX kata

      Pasti.

  3.   RAW-Asas kata

    Wenas! ..

    Kita dapat membuat yang sama .. ..tetapi direktori diteruskan sebagai parameter ..

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

    Dan kami menyebutnya sebagai:

    ./test.sh / opt /

    Salam ..

  4.   Savo kata

    JIKA bukan xD kitaran

  5.   Pedang Gregory kata

    Ini sesuai dengan saya seperti sarung tangan untuk skrip yang saya buat. Adakah sah menggunakan wildcard? Sebagai contoh, untuk mengetahui sama ada terdapat .mp4 maka jalankan sesuatu pada mereka.

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

    1.    RAW-Asas kata

      Ya, ia benar-benar sah ..

      Malah melalui parameter .. "* .mp4"

      1.    RAW-Asas kata

        Contohnya

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

        Sekiranya anda memanggilnya: ./test.sh * .mp4

        Sekiranya ia menemui fail .mp4, ia akan menghapusnya .. tetapi ia tidak menyenaraikan fail dalam direktori itu ..

        1.    Pedang Gregory kata

          Terima kasih atas maklum balas dan petua! 🙂

        2.    Joaquin kata

          Anda terlepas f xD

          rm -rf $ 1

          Ini lebih menarik!

        3.    b1tblu3 kata

          Hebat !!!, Setiap hari saya semakin jatuh cinta dengan Linux, Windows telah diturunkan ke sudut gelap Hard Drive saya, yang akan dihapus untuk memberi laluan kepada cahaya Linux.

          1.    RAW-Asas kata

            Hebat! .. ..kemudian ambil langkah seterusnya .. dan keluarkan ..

            6 bulan yang lalu lebih kurang. Saya hanya mempunyai GNU / Linux pada semua mesin saya dan saya tidak memerlukan lebih banyak .. ..bukan W $ .. atau Wain .. ..dan saya lebih senang seperti itu .. 😉

            Dan saya menjangkiti persekitaran saya .. kerana semua orang melihat saya dengan Arch saya, cepat, cekap dan gembira .. ..dan mereka meminta saya memasang Linux .. ..ye! .. 😀

        4.    Inukaze kata

          Anda juga boleh melihatnya untuk pelbagai sambungan, anda boleh menggunakan sesuatu seperti itu

          #! / Bin / Bash
          Direktori = $ RUMAH / Muat turun

          jika [$ Direktori]; kemudian
          echo "Berikut adalah Senarai Jenis Fail:"
          echo "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
          ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
          fi

          menggunakan {} membolehkan anda menentukan beberapa peluasan dalam kes ini, menggunakan "?" , adalah wildcard, yang membolehkan anda mengambil "Any Character".

          Saya harap ia dapat membantu anda

        5.    Pedro kata

          Saya mengesyorkan arahan cari [direktori] [search_pattern] –exec [command] {} \

      2.    Carlos kata

        Ia tidak berfungsi, saya memasukkan fail ini ke dalam direktori:
        AB20160420.TXT
        AB20160421.TXT
        AB20160422.TXT
        AB20160423.TXT
        AB20160424.TXT
        AB20160425.TXT
        cari.sh

        #! / Bin / Bash
        PATH = / tmp / UJIAN
        cd $ JALAN
        ls -la | awk '{cetak »« $ 9}'
        sekiranya [[-f AB.TXT]]; kemudian
        echo »Masukkan JIKA jika ada AB
        .TXT »
        fi
        jika [-f AB20160422.TXT]; kemudian
        echo "input untuk fail AB tertentu"
        fi

        semasa saya meletakkan [-f AB.TXT] memberikan ralat
        semasa saya meletakkan [[-f AB
        .TXT]] tidak memberikan ralat tetapi tidak dapat mencari fail
        ia hanya berfungsi apabila saya meletakkan fail tertentu, misalnya:
        jika [-f AB20160422.TXT]; kemudian

        Saya tidak dapat berfungsi dengan kad liar * atau?

        1.    Pedro kata

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

          KANDUNGAN

          EXIT_OK = 0
          EXIT_BAD = 66

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

          sekiranya [! "$ 1"];
          kemudian
          gema "tiada parameter"
          keluar $ EXIT_BAD
          fi

          cd "$ 1"

          fail = »ls -h1 $ 1»

          untuk fail dalam $ (fail $); buat
          echo -e "anda boleh melakukan apa sahaja dengan fail $ BOLD $ nc di sini"
          dilakukan

          keluar $ EXIT_OK

  6.   MSX kata

    @KZ, ceritakan lebih lanjut mengenai ini: «dan ini kerana saya memasuki dunia Python yang indah»!

    1.    KZKG ^ Gaara kata

      HAHAHAHA nah ... sedikit demi sedikit 🙂
      Saya masih baru untuk Python, saya tidak mempunyai masa untuk mendedikasikan berjam-jam untuknya, jadi saya lambat ya, lambat tapi pasti dalam pembelajaran saya 😀

  7.   audoban kata

    Terima kasih banyak yesterday baru semalam saya berfikir bagaimana melakukan ini.

  8.   reichsk kata

    ini dengan ncurses sangat bagus 🙂

  9.   Jazeco kata

    dalam 1 perkataan ... SANGAT BAIK!
    Untuk masa yang lama saya menyempurnakan skrip untuk membuat muat turun dari Internet, tetapi saya menghadapi masalah bahawa ia memuat turun fail yang diminta 1 dan sekali lagi tanpa dapat mengesahkan keberadaan 1ro.
    Tuto yang sangat baik.

  10.   zulan kata

    Sumbangan luar biasa, di sini dari Chile dihargai.
    Setiap hari lebih banyak LINUX mengejutkan saya,
    Perisian Percuma yang hidup lama MIERDAAAA.

  11.   david kata

    berkhidmat untuk
    periksa sama ada fail dari direktori

  12.   Penanam kata

    Sekiranya saya ingin memeriksa kewujudan sebarang fail di jalan «/ tmp / penerima», jalankan arahan saya, bagaimana keadaannya?

    Saya akan sangat bersyukur

    salam

  13.   John kata

    Yang terhormat, dan untuk menentukan oleh JIKA jika fail tersebut diisi sepenuhnya ???. Saya bertanya ini kerana semasa anda mengisi fail untuk penghantaran, ia dapat mengambilnya walaupun dengan separuh data.

    Salam dan terima kasih atas sambutan anda.

  14.   Inukaze kata

    Saya rasa anda juga harus menambahkan contoh, seperti "Periksa bahawa tidak ada" "" fail "atau" direktori "seperti contohnya

    untuk memeriksa bahawa TIDAK ada, misalnya gunakan pemboleh ubah->

    Direktori

    #! / Bin / Bash
    Direktori = »$ HOME / Direktori Ujian»
    Fail = »$ RUMAH / Fail Ujian»

    sekiranya [! -d "$ Direktori"]; kemudian
    echo "Tidak ada $ Direktori"
    echo "Membuat ->" Direktori $ "
    mkdir "$ Direktori"
    lagi
    echo "Direktori" $ Direktori "sudah ada
    fi

    sekiranya [! -d "$ Fail"]; kemudian
    echo "Fail $ tidak wujud"
    echo "Membuat ->" $ Fail "
    sentuh "$ Fail"
    lagi
    echo "File" $ File "sudah ada
    fi

    1.    Katekyo kata

      semasa anda melakukan mkdir periksa nanti jika terminal dapat membuatnya kerana ia dapat mematahkan bola jika folder sebagai root atau sistem hhah

  15.   Julius vinachi kata

    Salam KZKG ^ Gaara pertanyaan seperti yang saya lakukan untuk menggunakan curl. Saya ingin tahu bagaimana saya lakukan dari konsol hingga melakukan ping url untuk mengetahui apakah ia tersedia misalnya http://portal.com/directorio/archivo1.php Di mana fail1 akan menyimpan IP lawatan, adalah untuk memantau pasukan yang saya perlukan untuk membuat pin itu setiap setengah jam sehingga saya menyedari IP awam kerana ia berubah dari semasa ke semasa dan saya tidak dapat berhubung dengan ssh .

    Salam terima kasih terlebih dahulu Tuhan memberkati anda.

    1.    KZKG ^ Gaara kata

      Hai bagaimana ia akan berlaku

      Pertama, anda harus mengatakan bahawa pemboleh ubah IP (contohnya) adalah kandungan fail tersebut, untuk ini anda harus:
      1. Muat turun fail
      2. Lihat kandungannya dan dapatkan IP dari sana
      3. IP itu adalah pemboleh ubah

      Sebagai contoh:
      Di sini kami memuat turun fail - »wget http://portal.com/directorio/archivo1.php -o fail.html
      Kemudian kami menetapkan pemboleh ubah kandungannya: - »: $ {IP: =` cat file.html`}
      .. dengan andaian bahawa kandungan fail itu hanya mempunyai IP, jika tidak, anda harus bekerjasama dengan grep, awk atau head.

      Setelah anda mempunyai IP sebagai pemboleh ubah, selebihnya adalah perkara paling mudah di dunia 🙂

      Jika anda mahu, tulis kepada saya melalui e-mel (kzkggaara[at]desdelinux[dot]net) Saya dengan senang hati akan membantu anda

      1.    Julius vinachi kata

        Terima kasih banyak kzkggaara sangat berterima kasih.

  16.   Natalia kata

    Helo, saya tidak faham banyak mengenai pengkomputeran dan saya tidak tahu sama ada entri ini berkaitan dengan masalah yang saya hadapi.

    Saya memberi komen sekiranya anda membaca saya, walaupun catatannya berasal dari setahun yang lalu:
    Ternyata saya membuat folder di desktop saya untuk menyimpan beberapa video. Baiklah, saya telah memadamkan video tersebut kerana saya tidak lagi memerlukannya dan sekarang folder ini memberitahu saya bahawa video tersebut tidak wujud (walaupun ia dapat dilihat di desktop saya).

    - Itulah masalah pertama yang saya hadapi:
    Saya tidak dapat memadam folder.

    - Masalah kedua dan saya rasa lebih penting:
    Dalam usaha menghapus folder, saya meletakkan folder FOTO. Sekarang apabila saya membuka folder yang "tidak ada" itu kosong dan FOTO tidak ada di sana.

    Bagaimana saya boleh mendapatkan semula gambar? Saya telah memberikan pilihan di dalam folder "Tunjukkan dokumen tersembunyi" tetapi folder FOTO tidak muncul.

    Saya harap anda dapat mengetahui bagaimana ia diselesaikan.
    Terima kasih.

    1.    valdo kata

      Terdapat dua pengguna yang utama: root dan your_user (contohnya natalia). Kedua-duanya mempunyai folder peribadi. your_user in / home dan root in / (direktori root). Dengan mengklik kanan pada folder, lihat siapa itu. Sekiranya ia root dengan pengurus fail anda menggunakan sudo atau gksu atau kdesu bergantung pada lingkungan yang anda gunakan, pergi ke direktori root -> root -> Desktop dan anda mungkin akan menjumpai foto-foto tersebut dan anda boleh memadam folder tersebut. Beberapa distro apabila anda bukan pemilik fail atau direktori dan anda tidak mempunyai kebenaran akses memberitahu anda bahawa direktori / fail tidak ada. Sekiranya anda adalah pemilik dan anda bukan root, lakukan hal yang sama dengan pengurus fail dengan sudo, dll dan pergi ke direktori root -> / home -> personal_folder -> Desktop dan lihat apakah foto-foto itu ada dan jika anda boleh menghapus folder.
      Sekiranya ini tidak berjaya, anda perlu melihat pilihan lain dari terminal (konsol).

  17.   Pedro Manuel Aguayo Munoz kata

    Halo, apa khabar? Saya melakukan pekerjaan dalam bash dan saya ingin tahu bagaimana mengesahkan jika ada direktori yang dimasukkan dari papan kekunci, misalnya

    #! / Bin / Bash
    laluan membaca
    #Masukkan ~ / Desktop
    #Kemudian saya cuba menavigasi direktori itu
    cd $ jalan
    # Saya mendapat mesej bash berikut: cd: ~ / Desktop: Fail atau direktori tidak ada

    Soalan saya ialah apa yang boleh saya lakukan sehingga saya memasukkannya dari papan kekunci dan mengambilnya sebagai jalan direktori?

  18.   Miguel kata

    Dan bagaimana saya dapat mengetahui jika ada kumpulan,

  19.   hei kata

    baik saya mempunyai masalah dalam canaima saya ketika saya menekan butang cunaguaro mengatakan bahawa tidak ada fail atau direktori seperti yang akan dilakukan untuk menyelesaikan masalah itu dan selebihnya tidak membuka cunaguaro harap terima kasih.

  20.   Carlos kata

    Bagaimana anda melakukan if di BASH jika nama fail mempunyai ruang?
    Sebagai contoh:
    Data April.xlsx

    Untuk bertanya adakah fail itu ada

    1.    Manuel Alcocer Jimenez kata

      Carlos, seperti ini:

      jika [["$ variabel" == Data \ bulan \ dari \ April.xlsx]]; kemudian gema 'match'; fi

      Anda juga boleh:
      jika [["$ variable" == 'Data untuk bulan April.xlsx']]; kemudian gema 'match'; fi

      Pilihan lain:
      [[«$ Variable» == 'Data untuk April.xlsx']] && echo 'match' || gema 'tidak sepadan'

      Di beberapa kawasan gelap di internet, mereka mengesyorkan menggunakan [[]] dan bukan [], dan jika anda akan membandingkan nombor maka: ((pemboleh ubah> = 3)) && echo 'pemboleh ubah lebih besar daripada atau sama dengan 3' || pemboleh ubah echo 'kurang dari 3'

      Oleh itu, untuk nombor:

      jika ((nombor! = 4)); maka gema "$ {number} bukan 4"; yang lain bergema "$ {number} adalah 4"; fi

  21.   Cesar Matheus kata

    Bagaimana Anda dapat membuat kod untuk mengesahkan jika direktori memiliki teks tertentu, untuk dapat mengeditnya.

    contoh:

    jika (teks1)

    tidak buat apa-apa

    lagi

    menukar teks1 kepada teks2

  22.   Miguel kata

    soalan, bagaimana memeriksa setiap 15 saat jika fail itu ada atau tidak, terima kasih.

  23.   tebing sungai kata

    Hello,
    ini:
    jika [-w / rumah / Komun / Log / ti]; kemudian
    Ketahui sama ada fail itu boleh ditulis. Tetapi ia berdasarkan kebenaran pengguna. Bolehkah dilakukan untuk mengetahui sama ada kumpulan atau yang lain mempunyai kebenaran?