Rumah > Artikel > Tutorial sistem > 7 Penggunaan Berkuasa Cari Perintah dalam Linux
Baiklah, saya boleh cuba buat versi pseudo-original yang mendalam bagi perenggan ini. Ini versi saya yang diubah suai:
Di Linux, arahan find ialah salah satu operasi yang mesti dikuasai oleh pembangun bahagian belakang, melainkan anda menggunakan Pelayan Windows.
Ia juga merupakan topik biasa dalam temuduga teknikal. Inilah soalan sebenar:
Jika anda mempunyai direktori yang dipanggil log pada pelayan Linux anda, bagaimanakah anda memadam fail log di dalamnya yang terakhir diakses lebih setahun yang lalu? 🤔
Situasi ini sangat biasa, tetapi yang menghairankan, tidak setiap pembangun boleh menulis arahan ini dengan jelas dalam temu bual.
Jawapan: Pertama, kita perlu menggunakan arahan cd untuk memasuki direktori yang sepadan. Kemudian, arahannya adalah seperti berikut:
linuxmi@linuxmi:~/www.linuxmi.com$ find . -type f -atime +365 -exec rm -rf {} \;
Jika anda tidak memahami sepenuhnya arahan di atas, jangan risau. Artikel ini akan memperkenalkan 7 kegunaan praktikal arahan find supaya anda akhirnya boleh menguasainya. Jika anda sudah mengetahui perkara ini, membaca artikel ini akan menjadi penyegar yang baik.
Mari mulakan dengan penggunaan yang paling mudah. Untuk mencari fail dengan nama tertentu, arahannya adalah seperti berikut:
linuxmi@linuxmi:~/www.linuxmi.com$ find . -name linuxmi.sh
Simbol . dalam kod di atas menunjukkan laluan semasa. Jika kita ingin mencari fail di bawah laluan lain, nyatakan sahaja:
linuxmi@linuxmi:~/www.linuxmi.com$ find /home/linuxmi/linuxmi.com -name linuxmi.png
Bagaimana untuk mencari semua imej dalam format png? Gunakan ungkapan biasa:
find /home/linuxmi/linuxmi.com -name "*.png"
Secara lalai, arahan find mencari fail biasa, tetapi lebih baik untuk menentukan jenis untuk menjadikan semuanya lebih jelas:
find /home/linuxmi/linuxmi.com -type f -name "*.png"
Selain mencari fail biasa, kami juga boleh mencari jenis fail lain dengan menentukan pilihan -type.
Sebagai contoh direktori:
find . -type d -name "linuxmi*"
atau pautan simbolik:
find . -type l -name "linuxmi*"
Untuk mencari fail mengikut cap masa tertentu, kita perlu mengetahui tentang 3 cap masa berbeza dalam sistem Linux:
Akses cap masa (masa): Masa apabila fail dibaca kali terakhir. Cap masa pengubahsuaian (mtime): Masa kandungan fail kali terakhir diubah suai. Tukar cap masa (ctime): Metadata fail, seperti bila kali terakhir ditukar seperti tetapan pemilikan, lokasi, jenis fail dan kebenaran.
Jadi, sama seperti soalan temu bual yang disebutkan pada mulanya, untuk mencari fail yang berumur lebih daripada setahun, kita boleh menulis arahan berikut:
linuxmi@linuxmi:~$ find . -type f -atime +365
Jika kita perlu mencari fail yang masanya tepat 5 hari yang lalu, jangan masukkan tanda + kerana ia bermaksud "lebih besar daripada".
linuxmi@linuxmi:~$ find . -type f -mtime 5
Jelas sekali, tanda + bermaksud "lebih besar daripada" dan tanda - bermaksud "kurang daripada". Oleh itu, kita boleh mencari fail dengan masa antara 5 dan 10 hari:
linuxmi@linuxmi:~$ find . -type f -ctime +5 -ctime -10
-saiz membolehkan kami mencari fail mengikut saiz tertentu. Kita boleh menentukan unit ukurannya menggunakan konvensyen berikut:
b
:512字节块(默认)
c
:字节
w
:两字节单词
k
:千字节
M
:兆字节
G
:千兆字节
与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:
find . -type f -size +10M -size -1G
适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:
find . -type f -perm 777
例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。
这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:
find -type f -user linuxmi
在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-exec命令使所有这些操作变得更加简单。
现在,为了理解如何使用它,让我们回到之前提到的面试问题:
find . -type f -atime +365 -exec rm -rf {} ;
上述命令中-exec选项后面是rm -rf,用于删除文件。{}是找到的结果的占位符。
注意:占位符{}非常重要,特别是如果你想要删除文件。因为如果你不使用它,命令将对所有文件执行,而不仅仅是通过find命令找到的文件。
为了尝试一下,在终端上执行以下两个命令并检查它们的结果有什么不同:
一个使用了占位符:
find . -type f -atime +5 -exec ls {} ;
另一个没有使用:
find . -type f -atime +5 -exec ls ;
跟在-exec选项后面的命令必须以分号结束。正如我们所知,转义字符用于取消单个字符的特殊含义。在Linux中,反斜杠\被用作转义字符。因此,我们将其用于分号字符。
阅读完find命令的7个用途后,之前提到的面试问题现在看起来非常简单了。现在你能直接写出答案并清楚地解释吗?
find . -type f -atime +365 -exec rm -rf {};
感谢阅读。如果你喜欢,请关注Linux迷 www.linuxmi.com 以享受更多精彩文章。 🙂
Atas ialah kandungan terperinci 7 Penggunaan Berkuasa Cari Perintah dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!