Một tìm kiếm với locate
các đường dẫn trong hệ thống tập tin.
Thông thường, bạn biết một tiên nghiệm mà bạn quan tâm chỉ trong các tệp hoặc chỉ thư mục.
Tìm kiếm 'định vị' thường trả về nhiều kết quả. Sẽ rất hữu ích khi chỉ bao gồm một trong các loại trong kết quả, vì nó giúp rút ngắn đầu ra.
Nhưng có một đối số thú vị hơn để loại bỏ các tệp hoặc thư mục: bởi vì danh sách các đường dẫn kết quả có thể không rõ ràng - không chỉ trong lý thuyết.
Ví dụ dưới đây là trường hợp thực tế và không bất thường:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Ok, chúng tôi đã tìm thấy một cái gì đó! Nhưng ... tập tin, hay thư mục?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
Vậy đó là một tập tin ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
trong khi thứ hai thì không.
Sự không rõ ràng này đang làm cho danh sách dài các đường dẫn khó đọc, vì vậy sẽ rất tốt để lọc các thư mục, ví dụ như sử dụng tùy chọn dòng comman cho locate
.
Có một cái gì đó như thế này tồn tại? Ngay cả khi bộ lọc cho các thư mục là tách biệt với định vị?
Ít nhất, người ta có thể sử dụng một tập lệnh để lặp lại tất cả các tên tệp để kiểm tra - có thể bị chậm.
while
câu lệnh của bạn không?