Bagaimana saya bisa mencari nama kartu liar di semua subfolder? Apa yang akan setara dengan perintah DOS: dir *pattern* /s
di * nix?
Anda bisa menggunakannya find
. Jika, misalnya, Anda ingin menemukan semua file dan direktori yang ada abcd
dalam nama file, Anda bisa menjalankan:
find . -name '*abcd*'
Zsh:
ls -ld -- **/*abcd*
Ksh93:
set -o globstar # put this line in your ~/.kshrc
ls -ld -- **/*abcd*
Bash ≥4:
shopt -s globstar # put this line in your ~/.bashrc
ls -ld -- **/*abcd*
Yash:
set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*
tcsh:
set globstar
ls -ld -- **/*abcd*
ikan:
ls -ld -- **abcd*
(hati-hati beberapa dari kerang itu akan mengikuti symlink ketika turun pohon direktori; beberapa dari mereka yang tidak suka zsh
, yash
atau tcsh
harus ***/*abcd*
melakukannya).
Portable (kecuali untuk sistem yang sangat lama; OpenBSD butuh waktu lama tetapi akhirnya mendukung exec … +
sejak 5.1):
find . -name '*abcd*' -exec ls -ld {} +
Bukan POSIX tetapi berfungsi di * BSD, Linux, Cygwin, BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
Perhatikan bahwa kecuali dalam beberapa BSD, jika tidak ada file yang cocok ditemukan, ls -ld
akan dijalankan tanpa argumen, demikian juga daftar .
. Dengan beberapa xargs
implementasi, Anda dapat menggunakan -r
opsi untuk mengatasinya.
globstar
.