GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Karakter Wild Card * Begitu Berbeda Antara Perintah Zip Dan Rm?

Saya menyusun skrip untuk melakukan beberapa operasi file untuk saya. Saya menggunakan operator kartu liar * untuk menerapkan fungsi ke semua jenis file, tetapi ada satu hal yang tidak saya mengerti. Saya dapat unzip semua file dalam folder seperti ini

unzip "*".zip

Namun, untuk menghapus semua file zip sesudahnya, saya perlu melakukan

rm *.zip

Artinya, tidak ingin tanda kutip. Unzip, di sisi lain, tidak berfungsi jika saya hanya memberikan * (memberi saya peringatan bahwa "file tidak cocok").

Mengapa ini berbeda? Bagi saya, ini sepertinya operasi yang sama persis. Atau apakah saya salah menggunakan wild card?

Pengenalan wild card di Unix tidak benar-benar membahas ini, dan saya tidak dapat menemukan apa pun di rm atau zip dokumen.

Saya menggunakan terminal di Mac (Yosemite).

Jawaban yang Diterima:

Anda telah menjelaskan situasinya dengan sangat baik. Bagian terakhir dari teka-teki ini adalah unzip dapat menangani wildcard itu sendiri:

http://www.info-zip.org/mans/unzip.html

ARGUMEN

file[.zip]

Ekspresi wildcard mirip dengan yang didukung di shell Unix yang umum digunakan (sh, ksh, csh) dan mungkin berisi:

* cocok dengan urutan 0 karakter atau lebih

Dengan mengutip * wildcard, Anda mencegah shell Anda memperluasnya, sehingga unzip melihat wildcard dan berurusan dengan mengembangkannya sesuai dengan logikanya sendiri.

rm , sebaliknya, tidak mendukung karakter pengganti sendiri , jadi mencoba mengutip karakter pengganti akan menginstruksikan rm untuk mencari tanda bintang literal dalam nama file sebagai gantinya.

Alasan unzip *.zip tidak berfungsi adalah unzip Sintaksnya tidak mengizinkan banyak file zip; jika ada beberapa parameter, parameter ke-2 dan selanjutnya akan menjadi file dalam arsip:

unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) …] [-x xfile(s) …] [-d exdir]


Linux
  1. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  2. Perbedaan Getty dan Agetty?

  3. Perbedaan Antara .exrc Dan .vimrc?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Perbedaan Antara Perintah Menghentikan dan Mematikan?

  3. Perbedaan antara ${} dan $() di Bash

  1. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  2. Perbedaan Nss dan Pam?

  3. Unzip Mengira File Zip Adalah Bom Zip?