GNU/Linux >> Belajar Linux >  >> Linux

Apakah `ls -d *[!e]*` Menampilkan Semua File Daripada Menghilangkan Semua File yang Mengandung E?

ls -d *e* mencetak semua file yang berisi "e" di suatu tempat di dalamnya. Tapi sebaliknya, ls -d *[!e]* tampaknya tidak bekerja. Mengapa tepatnya?

apakah karena ls mengambil * sebagai argumennya sendiri dan memperluas semua file?

Saya mengerti saya bisa melakukan:ls -d !(*e*) (di Bash dengan extglob set, atau dalam ksh).

Jawaban yang Diterima:

Apa yang sebenarnya dilakukan glob itu adalah mencocokkan sejumlah karakter, lalu satu karakter selain e, lalu sejumlah karakter. Ini akan cocok dengan file apa pun dengan nama yang tidak seluruhnya terdiri dari e.


Linux
  1. tautan simbolik:temukan semua file yang terhubung ke file ini

  2. Bagaimana cara menghapus paket sepenuhnya (termasuk semua file tambahan yang menyertainya) menggunakan yum (atau rpm)?

  3. Bagaimana cara menemukan semua file yang *tidak* dapat ditulisi oleh grup?

  1. Cara menemukan file yang tidak berisi string pencarian tertentu

  2. Bagaimana cara menampilkan nama file yang mengandung dua karakter dan salah satunya adalah c?

  3. Hapus file yang dimulai dengan tetapi tidak berisi

  1. MU Music Player – Pemutar yang Mengingat Semua Musik Anda

  2. Unzip Semua File Di Direktori

  3. Menampilkan dua file berdampingan