Saya sudah mencoba menemukan perintah untuk menghapus semua file dalam folder tetapi bukan jenis file. Tapi sepertinya saya tidak beruntung. Apa yang saya coba sejauh ini:
set extended_glob
rm !(*.dmg)
# this returns zsh:number expected
rm ./^*.dmg
# this returns no matches found
Versi zsh yang saya gunakan adalah zsh 5.0.2 (x86_64-apple-darwin13.0.1)
.
rm -r secrets/!(directory)
terus memintanumber expected
atau kadang-kadang itu memberi sayaevent not found: directory
ksh_glob
opsi. "Event tidak ditemukan: direktori" menunjukkan bahwa Anda menjalankan bash (yang juga memahami!(…)
sintaks, tetapi hanya setelahshopt -s extglob
).setopt ksh_glob; echo !(a|b)
bekerja sementarasetopt ksh_glob; echo !(a)
tidak ("nomor diharapkan") ...Anda bisa menggunakan
find
bukan shell Anda:Dari
man find
:Jika Anda tidak dapat menggunakan
find
untuk alasan apa pun, berikut adalah cara untuk melakukannya denganzsh
(atau cangkang lain).zsh
menjadizsh
, mungkin ada cara sederhana untuk melakukan hal ini tapi karena akubash
pria, ini adalah apa yang saya datang dengan:sumber
find [Process completed]
find
. Saya sarankan Anda memposting pertanyaan tentangfind
masalah Anda , itu seharusnya tidak terjadi. Jika Anda melakukannya, sertakan outputtype -a find
.rm !(*.dmg)
setelahshopt -s extglob
.find is a shell function find is /usr/bin/find
/usr/bin/find
. Anda memiliki fungsi yang disebutfind
didefinisikan di salah satu file konfigurasi bash Anda. Karena Anda menggunakan OSX, itu mungkin~/.profile
.Cara lain untuk menghapus file adalah dengan
find
,xargs
danrm
:sumber