Làm thế nào tôi có thể tìm kiếm một tên thẻ hoang dã trong tất cả các thư mục con? Điều gì sẽ tương đương với lệnh DOS: dir *pattern* /s
trong * nix?
Làm thế nào tôi có thể tìm kiếm một tên thẻ hoang dã trong tất cả các thư mục con? Điều gì sẽ tương đương với lệnh DOS: dir *pattern* /s
trong * nix?
Câu trả lời:
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*
cá:
ls -ld -- **abcd*
(hãy cẩn thận một số những vỏ sẽ theo liên kết tượng trưng khi giảm dần cây thư mục, một số trong những người không thích zsh
, yash
hoặc tcsh
có ***/*abcd*
để làm điều đó).
Portable (ngoại trừ các hệ thống rất cũ; OpenBSD mất nhiều thời gian nhưng cuối cùng cũng hỗ trợ exec … +
kể từ 5.1):
find . -name '*abcd*' -exec ls -ld {} +
Không phải POSIX nhưng hoạt động trên * BSD, Linux, Cygwin, BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
Lưu ý rằng ngoại trừ trong một số BSD, nếu không tìm thấy tệp phù hợp, ls -ld
sẽ được chạy mà không có đối số, vì vậy sẽ liệt kê .
. Với một số xargs
triển khai, bạn có thể sử dụng -r
tùy chọn để khắc phục điều đó.
globstar
.