Saya ingin menulis sesuatu seperti ini:
$ ls **.py
untuk mendapatkan semua nama file .py, berjalanlah hierarki direktori secara rekursif.
Bahkan jika ada file .py untuk ditemukan, shell (bash) memberikan output ini:
ls: cannot access **.py: No such file or directory
Adakah cara untuk melakukan apa yang saya inginkan?
EDIT: Saya ingin menyatakan bahwa saya tidak tertarik dengan kasus spesifik ls
, tetapi pertanyaannya adalah tentang sintaks glob.
Jawaban yang Diterima:
Untuk melakukan gumpalan rekursif di bash, Anda memerlukan globstar
fitur dari bash versi 4 atau lebih tinggi.
Dari halaman manual bash:
globstar
If set, the pattern ** used in a pathname expansion context will
match all files and zero or more directories and subdirectories.
If the pattern is followed by a /, only directories and
subdirectories match.
Untuk pola contoh Anda:
shopt -s globstar
ls -d -- **/*.py
Linux – Bagaimana Mengkonfigurasi Berbagi Bandwidth yang Adil Antar Cgroup?
Bagaimana Cara Menjalankan Script Di Shell Saat Tombol Pintasan Ditekan?