[导读] 除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令。首先,在你的home目录下面创
除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。
本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令。
首先,在你的home目录下面创建下面的空文件,来测试下面的find命令示例。
01 | # vim create_sample_files.sh |
02 | touch MybashProgram.sh |
03 | touch mycprogram.c |
04 | touch MyCProgram.c |
05 | touch Program.c |
06 |
07 | mkdir backup |
08 | cd backup |
09 |
10 | touch MybashProgram.sh |
11 | touch mycprogram.c |
12 | touch MyCProgram.c |
13 | touch Program.c |
14 |
15 | # chmod +x create_sample_files.sh |
16 |
17 | # ./create_sample_files.sh |
18 |
19 | # ls -R |
20 | .: |
21 | backup MybashProgram.sh MyCProgram.c |
22 | create_sample_files.sh mycprogram.c Program.c |
23 |
24 | ./backup: |
25 | MybashProgram.sh mycprogram.c MyCProgram.c Program.c |
1. 用文件名查找文件
这是find命令的一个基本用法。下面的例子展示了用MyCProgram.c作为查找名在当前目录及其子目录中查找文件的方法。
1 | # find -name "MyCProgram.c" |
2 | ./backup/MyCProgram.c |
3 | ./MyCProgram.c |
2.用文件名查找文件,忽略大小写
这是find命令的一个基本用法。下面的例子展示了用MyCProgram.c作为查找名在当前目录及其子目录中查找文件的方法,忽略了大小写。
1 | # find -iname "MyCProgram.c" |
2 | ./mycprogram.c |
3 | ./backup/mycprogram.c |
4 | ./backup/MyCProgram.c |
5 | ./MyCProgram.c |
3. 使用mindepth和maxdepth限定搜索指定目录的深度
在root目录及其子目录下查找passwd文件。
1 | # find / -name passwd |
2 | ./usr/share/doc/nss_ldap-253/pam.d/passwd |
3 | ./usr/bin/passwd |
4 | ./etc/pam.d/passwd |
5 | ./etc/passwd |
在root目录及其1层深的子目录中查找passwd. (例如root — level 1, and one sub-directory — level 2)
1 | # find -maxdepth 2 -name passwd |
2 | ./etc/passwd |
在root目录下及其最大两层深度的子目录中查找passwd文件. (例如 root — level 1, and two sub-directories — level 2 and 3 )
1 | # find / -maxdepth 3 -name passwd |
2 | ./usr/bin/passwd |
3 | ./etc/pam.d/passwd |
4 | ./etc/passwd |
在第二层子目录和第四层子目录之间查找passwd文件。
1 | # find -mindepth 3 -maxdepth 5 -name passwd |
2 | ./usr/bin/passwd |
3 | ./etc/pam.d/passwd |
4. 在find命令查找到的文件上执行命令
下面的例子展示了find命令来计算所有不区分大小写的文件名为“MyCProgram.c”的文件的MD5验证和。{}将会被当前文件名取代。
1 | find -iname "MyCProgram.c" -exec md5sum {} \; |
2 | d41d8cd98f00b204e9800998ecf8427e ./mycprogram.c |
3 | d41d8cd98f00b204e9800998ecf8427e ./backup/mycprogram.c |
4 | d41d8cd98f00b204e9800998ecf8427e ./backup/MyCProgram.c |
5 | d41d8cd98f00b204e9800998ecf8427e ./MyCProgram.c |
5. 相反匹配
显示所有的名字不是MyCProgram.c的文件或者目录。由于maxdepth是1,所以只会显示当前目录下的文件和目录。
1 | find -maxdepth 1 -not -iname "MyCProgram.c" |
2 | . |
3 | ./MybashProgram.sh |
4 | ./create_sample_files.sh |
5 | ./backup |
6 | ./Program.c |
6. 使用inode编号查找文件
任何一个文件都有一个独一无二的inode编号,借此我们可以区分文件。创建两个名字相似的文件,例如一个有空格结尾,一个没有。
1 | touch "test-file-name" |
2 |
3 | # touch "test-file-name " |
4 | [Note: There is a space at the end] |
5 |
6 | # ls -1 test* |
7 | test-file-name |
8 | test-file-name |
从ls的输出不能区分哪个文件有空格结尾。使用选项-i,可以看到文件的inode编号,借此可以区分这两个文件。
1 | ls -i1 test* |
2 | 16187429 test-file-name |
3 | 16187430 test-file-name |
你可以如下面所示在find命令中指定inode编号。在此,find命令用inode编号重命名了一个文件。
1 | find -inum 16187430 -exec mv {} new-test-file-name \; |
2 |
3 | # ls -i1 *test* |
4 | 16187430 new-test-file-name |
5 | 16187429 test-file-name |
你可以在你想对那些像上面一样的糟糕命名的文件做某些操作时使用这一技术。例如,名为file?.txt的文件名字中有一个特殊字符。若你想执行“rm file?.txt”,下面所示的所有三个文件都会被删除。所以,采用下面的步骤来删除"file?.txt"文件。
1 | ls |
2 | file1.txt file2.txt file?.txt |
找到每一个文件的inode编号。
1 | ls -i1 |
2 | 804178 file1.txt |
3 | 804179 file2.txt |
4 | 804180 file?.txt |
如下所示: 使用inode编号来删除那些具有特殊符号的文件名。
1 | find -inum 804180 -exec rm {} \; |
2 |
3 | # ls |
4 | file1.txt file2.txt |
5 | [Note: The file with name "file?.txt" is now removed] |
7. 根据文件权限查找文件
下面的操作时合理的:
找到具有指定权限的文件
忽略其他权限位,检查是否和指定权限匹配
根据给定的八进制/符号表达的权限搜索
此例中,假设目录包含以下文件。注意这些文件的权限不同。
1 | ls -l |
2 | total 0 |
3 | -rwxrwxrwx 1 root root 0 2009-02-19 20:31 all_for_all |
4 | -rw-r--r-- 1 root root 0 2009-02-19 20:30 everybody_read |
5 | ---------- 1 root root 0 2009-02-19 20:31 no_for_all |
6 | -rw------- 1 root root 0 2009-02-19 20:29 ordinary_file |
7 | -rw-r----- 1 root root 0 2009-02-19 20:27 others_can_also_read |
8 | ----r----- 1 root root 0 2009-02-19 20:27 others_can_only_read |
找到具有组读权限的文件。使用下面的命令来找到当前目录下对同组用户具有读权限的文件,忽略该文件的其他权限。
1 | find . -perm -g=r -type f -exec ls -l {} \; |
2 | -rw-r--r-- 1 root root 0 2009-02-19 20:30 ./everybody_read |
3 | -rwxrwxrwx 1 root root 0 2009-02-19 20:31 ./all_for_all |
4 | ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read |
5 | -rw-r----- 1 root root 0 2009-02-19 20:27 ./others_can_also_read |
找到对组用户具有只读权限的文件。
1 | find . -perm g=r -type f -exec ls -l {} \; |
2 | ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read |
找到对组用户具有只读权限的文件(使用八进制权限形式)。
1 | find . -perm 040 -type f -exec ls -l {} \; |
2 | ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read |
8. 找到home目录及子目录下所有的空文件(0字节文件)
下面命令的输出文件绝大多数都是锁定文件盒其他程序创建的place hoders
1 | find ~ -empty |
只列出你home目录里的空文件。
1 | find . -maxdepth 1 -empty |
只列出当年目录下的非隐藏空文件。
1 | find . -maxdepth 1 -empty -not -name ".*" |
9. 查找5个最大的文件
下面的命令列出当前目录及子目录下的5个最大的文件。这会需要一点时间,取决于命令需要处理的文件数量。
1 | find . -type f -exec ls -s {} \; | sort -n -r | head -5 |
10. 查找5个最小的文件
方法同查找5个最大的文件类似,区别只是sort的顺序是降序。
1 | find . -type f -exec ls -s {} \; | sort -n | head -5 |
上面的命令中,很可能你看到的只是空文件(0字节文件)。如此,你可以使用下面的命令列出最小的文件,而不是0字节文件。
1 | find . -not -empty -type f -exec ls -s {} \; | sort -n | head -5 |
11. 使用-type查找指定文件类型的文件
只查找socket文件
1 | find . -type s |
查找所有的目录
1 | find . -type d |
查找所有的一般文件
1 | find . -type f |
查找所有的隐藏文件
1 | find . -type f -name ".*" |
查找所有的隐藏目录
1 | find -type d -name ".*" |
12. 通过和其他文件比较修改时间查找文件
显示在指定文件之后做出修改的文件。下面的find命令将显示所有的在ordinary_file之后创建修改的文件。
01 | ls -lrt |
02 | total 0 |
03 | -rw-r----- 1 root root 0 2009-02-19 20:27 others_can_also_read |
04 | ----r----- 1 root root 0 2009-02-19 20:27 others_can_only_read |
05 | -rw------- 1 root root 0 2009-02-19 20:29 ordinary_file |
06 | -rw-r--r-- 1 root root 0 2009-02-19 20:30 everybody_read |
07 | -rwxrwxrwx 1 root root 0 2009-02-19 20:31 all_for_all |
08 | ---------- 1 root root 0 2009-02-19 20:31 no_for_all |
09 |
10 | # find -newer ordinary_file |
11 | . |
12 | ./everybody_read |
13 | ./all_for_all |
14 | ./no_for_all |
13. 通过文件大小查找文件
使用-size选项可以通过文件大小查找文件。
查找比指定文件大的文件
1 | find ~ -size +100M |
查找比指定文件小的文件
1 | find ~ -size -100M |
查找符合给定大小的文件
1 | find ~ -size 100M |
注意: – 指比给定尺寸小,+ 指比给定尺寸大。没有符号代表和给定尺寸完全一样大。
14. 给常用find操作取别名
若你发现有些东西很有用,你可以给他取别名。并且在任何你希望的地方执行。
常用的删除a.out文件。
1 | alias rmao="find . -iname a.out -exec rm {} \;" |
2 | # rmao |
删除c程序产生的core文件。
1 | alias rmc="find . -iname core -exec rm {} \;" |
2 | # rmc |
15. 用find命令删除大型打包文件
下面的命令删除大于100M的*.zip文件。
1 | find / -type f -name *.zip -size +100M -exec rm -i {} \;" |
用别名rm100m删除所有大雨100M的*.tar文件。使用同样的思想可以创建rm1g,rm2g,rm5g的一类别名来删除所有大于1G,2G,5G的文件。
1 | alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} \;" |
2 | # alias rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} \;" |
3 | # alias rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} \;" |
4 | # alias rm5g="find / -type f -name *.tar -size +5G -exec rm -i {} \;" |
5 |
6 | # rm100m |
7 | # rm1g |
8 | # rm2g |
9 | # rm5g |
Find命令示例(第二部分)
Atas ialah kandungan terperinci Linux find15个常用命令. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Mod penyelenggaraan Linux dimasukkan dengan menambah init =/bin/bash atau parameter tunggal pada permulaan. 1. Masukkan Mod Penyelenggaraan: Edit menu Grub dan tambahkan parameter permulaan. 2. Mengembalikan sistem fail untuk membaca dan menulis mod: mount-oremount, rw/. 3. Membaiki sistem fail: Gunakan arahan FSCK, seperti FSCK/DEV/SDA1. 4. Menyokong data dan beroperasi dengan berhati -hati untuk mengelakkan kehilangan data.

Artikel ini membincangkan cara meningkatkan kecekapan pemprosesan data Hadoop pada sistem Debian. Strategi pengoptimuman meliputi peningkatan perkakasan, pelarasan parameter sistem operasi, pengubahsuaian konfigurasi Hadoop, dan penggunaan algoritma dan alat yang cekap. 1. Pengukuhan sumber perkakasan memastikan bahawa semua nod mempunyai konfigurasi perkakasan yang konsisten, terutama memberi perhatian kepada prestasi CPU, memori dan peralatan rangkaian. Memilih komponen perkakasan berprestasi tinggi adalah penting untuk meningkatkan kelajuan pemprosesan keseluruhan. 2. Sistem operasi Tunes deskriptor fail dan sambungan rangkaian: Ubah suai fail /etc/security/limits.conf untuk meningkatkan had atas deskriptor fail dan sambungan rangkaian yang dibenarkan dibuka pada masa yang sama oleh sistem. Pelarasan Parameter JVM: Laraskan fail Hadoop-env.sh

Panduan ini akan membimbing anda untuk belajar cara menggunakan syslog dalam sistem Debian. SYSLOG adalah perkhidmatan utama dalam sistem Linux untuk sistem pembalakan dan mesej log aplikasi. Ia membantu pentadbir memantau dan menganalisis aktiviti sistem untuk mengenal pasti dan menyelesaikan masalah dengan cepat. 1. Pengetahuan asas syslog Fungsi teras syslog termasuk: mengumpul dan menguruskan mesej log secara terpusat; menyokong pelbagai format output log dan lokasi sasaran (seperti fail atau rangkaian); Menyediakan fungsi tontonan log dan penapisan masa nyata. 2. Pasang dan konfigurasikan syslog (menggunakan rsyslog) Sistem Debian menggunakan rsyslog secara lalai. Anda boleh memasangnya dengan arahan berikut: sudoaptupdatesud

Apabila memilih versi Hadoop yang sesuai untuk sistem Debian, faktor utama berikut perlu dipertimbangkan: 1. Kestabilan dan sokongan jangka panjang: Bagi pengguna yang mengejar kestabilan dan keselamatan, disarankan untuk memilih versi stabil Debian, seperti Debian11 (Bullseye). Versi ini telah diuji sepenuhnya dan mempunyai kitaran sokongan sehingga lima tahun, yang dapat memastikan operasi sistem yang stabil. 2. Kelajuan Kemas Kini Pakej: Jika anda perlu menggunakan ciri dan ciri Hadoop terkini, anda boleh mempertimbangkan versi Debian yang tidak stabil (SID). Walau bagaimanapun, perlu diperhatikan bahawa versi yang tidak stabil mungkin mempunyai masalah keserasian dan risiko kestabilan. 3. Sokongan dan Sumber Masyarakat: Debian mempunyai sokongan masyarakat yang besar, yang dapat memberikan dokumentasi yang kaya dan

Artikel ini menerangkan cara menggunakan Tigervnc untuk berkongsi fail pada sistem Debian. Anda perlu memasang pelayan tigervnc terlebih dahulu dan kemudian konfigurasikannya. 1. Pasang pelayan Tigervnc dan buka terminal. Kemas kini senarai pakej perisian: sudoaptupdate untuk memasang pelayan tigervnc: sudoaptinstalltigervnc-standalone-servertigervnc-common 2.

Mengkonfigurasi firewall pelayan Mail Debian adalah langkah penting dalam memastikan keselamatan pelayan. Berikut adalah beberapa kaedah konfigurasi firewall yang biasa digunakan, termasuk penggunaan iptables dan firewalld. Gunakan iptables untuk mengkonfigurasi firewall untuk memasang iptables (jika belum dipasang): sudoapt-getupdateudoapt-getinstalliplesview peraturan iptables semasa: konfigurasi sudoiptable-l

Langkah -langkah untuk memasang sijil SSL pada pelayan mel Debian adalah seperti berikut: 1. Pasang OpenSSL Toolkit terlebih dahulu, pastikan bahawa OpenSSL Toolkit telah dipasang pada sistem anda. Jika tidak dipasang, anda boleh menggunakan arahan berikut untuk memasang: sudoapt-getupdateudoapt-getinstallopenssl2. Menjana permintaan kunci dan sijil peribadi seterusnya, gunakan OpenSSL untuk menjana kunci peribadi RSA 2048-bit dan permintaan sijil (CSR): Membuka

Mengkonfigurasi hos maya untuk pelayan mel pada sistem Debian biasanya melibatkan memasang dan mengkonfigurasi perisian pelayan mel (seperti Postfix, Exim, dan lain -lain) daripada Apache Httpserver, kerana Apache digunakan terutamanya untuk fungsi pelayan web. Berikut adalah langkah asas untuk mengkonfigurasi host maya pelayan mel: Pasang pakej sistem kemas kini pelayan pos Postfix: SudoaptDateSudoaptPrade Pasang Postfix: sudoapt


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa