Câu lệnh find

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 40 - 44)

Hệ thống tệp

4.5.1 Câu lệnh find

Câu lệnh find cho phép duyệt các tệp có các tiêu chí phù hợp trong một thư mục và các thư mục con, đồng thời thực hiện các thao tác định nghĩa trước trên các tệp đó. Bảng mô tả một số tiêu chí để có thể tìm kiếm tệp dùng lệnh find.

[root@localhost trunghq]# find / -name ’passwd’ /etc/passwd

/usr/bin/passwd

/usr/share/doc/nss_ldap-202/pam.d/passwd

/usr/share/doc/pam_krb5-1.60/krb5afs-pam.d/passwd /usr/share/doc/pam_krb5-1.60/pam.d/passwd

Hoặc

[root@localhost trunghq]# find / -name ’passw*’ /etc/passwd /etc/pam.d/passwd /etc/passwd- /etc/passwd.lock /usr/bin/passwd /usr/share/doc/nss_ldap-202/pam.d/passwd /usr/share/doc/pam_krb5-1.60/krb5afs-pam.d/passwd /usr/share/doc/pam_krb5-1.60/pam.d/passwd /usr/share/doc/samba-2.2.7a/docs/pam_smbpass/samples/password-mature /usr/share/doc/samba-2.2.7a/docs/pam_smbpass/samples/password-migration /usr/share/doc/samba-2.2.7a/docs/pam_smbpass/samples/password-sync /usr/share/pixmaps/password.png /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz /usr/share/awk/passwd.awk

Một ví dụ về tìm kiếm nhiều tiêu chí

[root@localhost trunghq]# find / -name ’passwd’ -or -size +10000k /proc/kcore /var/lib/rpm/Packages /var/log/lastlog /etc/passwd /etc/pam.d/passwd /root/test2.img /usr/bin/passwd /usr/lib/locale/locale-archive /usr/share/doc/nss_ldap-202/pam.d/passwd /usr/share/doc/pam_krb5-1.60/krb5afs-pam.d/passwd /usr/share/doc/pam_krb5-1.60/pam.d/passwd /usr/share/comps/i386/hdlist2 /test.img /test2.img

[trunghq@localhost trunghq]$ sudo time find / -size +10000k -exec ls -l {} \; -r--- 1 root root 536875008 Apr 19 03:37 /proc/kcore

-rw-r--r-- 1 rpm rpm 11350016 Apr 2 19:52 /var/lib/rpm/Packages -r--- 1 root root 19136220 Apr 19 03:23 /var/log/lastlog -rw-r--r-- 1 root root 51200000 Apr 14 07:05 /root/test2.img

-rw-r--r-- 1 root root 30301680 Apr 2 19:33 /usr/lib/locale/locale-a rchive

-rw-r--r-- 1 root root 19066344 Mar 14 2003 /usr/share/comps/i386/hd list2

-rw-r--r-- 1 root root 512000000 Apr 14 08:24 /test.img -rw-r--r-- 1 root root 51200000 Apr 14 07:07 /test2.img

0.22user 0.54system 0:00.77elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (1503major+361minor)pagefaults 0swaps

Câu lệnh find duyệt trên cả cây thư mục, nên tốc độ tìm kiếm thường chậm. Để có thể tìm kiếm nhanh hơn vị trí của một tệp, câu lệnh locate được sử dụng:

[trunghq@localhost trunghq]$ time locate gpasswd /usr/bin/gpasswd /usr/share/man/man1/gpasswd.1.gz /usr/share/man/pt_BR/man1/gpasswd.1.gz /usr/share/man/fr/man1/gpasswd.1.gz /usr/share/man/hu/man1/gpasswd.1.gz /usr/share/man/it/man1/gpasswd.1.gz /usr/share/man/ja/man1/gpasswd.1.gz /usr/share/man/pl/man1/gpasswd.1.gz real 0m0.031s user 0m0.010s sys 0m0.030s

Câu lệnh locate sử dụng CSDL để đánh chỉ số các tệp, do đó quá trình tệp nhanh hơn nhiều. Tuy nhiên trước khi sử dụng locate cần khởi tạo CSDL và cập nhật thường xuyên bằng lệnh updatedb. Câu lệnh slocate thực hiện chức năng của locate một cách bảo mật, không cho các NSD khác có thể tìm kiếm trong CSDL chỉ số của các tệp.

4.6 Bài tập

Bài tập 4.1 Trong thư mục nhà, hãy tạo ra các thư mục /d1/d2/d3. Đổi tên d2 thành d22. Xóa thư mục d3.

Bài tập 4.2 Viết lệnh copy thư mục /etc/ về thư mục /root/backup/etc. Tạo liên kết đến thư mục này đặt tên là etc-backup đặt trong thư mục nhà của root.

Bài tập 4.3 Viết câu lệnh để có thể hiển thị số thư mục con của /etc/.

Bài tập 4.4 Trong thư mục nhà, tạo thư mục /temp/d1 và /temp/d2. Trong thư mục d1 tạo tệp t1. Viết các câu lệnh tạo các liên kết vật lý và biểu tượng p-link và s-link trong thư mục d2 trỏ đến t1 sử dụng đường dẫn tương đối. Dịch chuyển t1 đến d2. Xác định trạng thái của các liên kết

Bài tập 4.5 Trong thư mục nhà, tạo thư mục /temp/d1 và /temp/d2. Trong thư mục d1 tạo tệp t1. Viết các câu lệnh tạo các liên kết vật lý và biểu tượng p-link và s-link trong thư mục d2 trỏ đến t1 sử dụng đường dẫn tuyệt đối. Dịch chuyển t1 đến d2. Xác định trạng thái của các liên kết

Bài tập 4.6 Viết câu lệnh find tìm các tệp có đuôi .wri và có kích thước nhỏ hơn 10M.

Chương 5

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 40 - 44)

Tải bản đầy đủ (PDF)

(164 trang)