GNU/Linux >> Belajar Linux >  >> Linux

karakter wildcard `* ` tidak cocok dengan beberapa string?

Sebagai ekstensi untuk jawaban Shaido saya ingin memberikan beberapa penjelasan mengapa -a opsi tidak akan berfungsi di sini:

ls perintah tidak tidak memproses wildcard. Penerjemah baris perintah melakukan langkah ini:

Jika Anda mengetik baris perintah "mycommand *.c " juru bahasa baris perintah pertama-tama akan mengganti string wildcard "*.c " dengan daftar file yang cocok dan kemudian jalankan baris perintah yang dihasilkan:

mycommand a.c file.c test.c

Penerjemah baris perintah bekerja dengan cara yang sama untuk semua perintah sehingga tidak dapat mengetahui bahwa -a berarti "termasuk file tersembunyi" dalam kasus ls perintah (sementara -a memiliki arti yang sama sekali berbeda untuk perintah lain)...


File yang dimulai dengan titik disembunyikan dari daftar file secara default. Cara termudah untuk mencocokkan file semacam itu adalah dengan meletakkan titik di awal ekspresi. Namun, ini hanya akan mencocokkan file yang dimulai dengan . .

ls  -al  .*.swo

Alternatifnya adalah mengatur dotglob sebelum menjalankan perintah, maka file dimulai dengan . akan disertakan.

shopt -s dotglob

Tambahkan ke ~/.bashrc Anda untuk menyetelnya secara default.

Perhatikan bahwa mengatur dotglob dapat menyebabkan hasil yang tidak diinginkan saat menggunakan bash shell, karena keduanya . (direktori saat ini) dan .. (direktori induk) akan muncul saat menggunakan * . Dengan dotglob tetapkan, tidak pernah coba gunakan rm -R * .


Linux
  1. Jumlah File yang Mengandung String yang Diberikan?

  2. Perintah Unix untuk Mendaftar file yang berisi string tetapi *TIDAK* berisi string lain

  3. Cara mengganti string dalam banyak file di baris perintah linux

  1. Bagaimana saya bisa menyalin banyak file melalui scp dalam satu perintah?

  2. Bagaimana saya bisa menggunakan perintah tar untuk mengelompokkan file tanpa kompresi?

  3. Bagaimana saya bisa memeriksa karakter kata demi kata dari string perintah bash?

  1. Cara Mengganti Nama File di Linux

  2. Salin file &direktori di Linux

  3. Bagaimana cara menghitung jumlah file yang dapat diteruskan sebagai argumen ke beberapa perintah untuk pemrosesan batch?