一、文件和目录操作
-
ls
:- 功能:列出目录中的文件和子目录。
- 参数详解:
-l
:以长格式显示,包括文件权限、所有者、大小、修改时间等详细信息。例如:ls -l
会显示类似“-rw-r--r-- 1 user group 12345 Nov 6 10:00 file.txt”的信息。-a
:显示所有文件,包括以“.”开头的隐藏文件。例如在一个包含隐藏文件“.config”的目录中,使用ls -a
会显示出这个隐藏文件。-h
:与-l
一起使用时,以人类可读的格式显示文件大小,如用“K”“M”“G”表示。例如:“-rw-r--r-- 1 user group 1.2K Nov 6 10:00 file.txt”。
- 示例用法:
ls -lah /home/user
:以长格式、显示隐藏文件且人类可读的方式列出/home/user 目录下的所有文件和子目录信息。
-
cd
:- 功能:切换当前工作目录。
- 示例用法:
cd /usr/local/bin
:切换到/usr/local/bin 目录。cd..
:切换到上一级目录。cd ~
:切换到当前用户的主目录。
-
pwd
:- 功能:显示当前工作目录的绝对路径。
- 示例用法:在任何目录下执行
pwd
,都会显示当前所在目录的完整路径,如“/home/user/documents”。
-
mkdir
:- 功能:创建新的目录。
- 示例用法:
mkdir new_folder
:在当前目录下创建一个名为 new_folder 的目录。mkdir -p parent/child/subchild
:递归创建多级目录,如果 parent、child 和 subchild 都不存在,会依次创建它们。
-
rmdir
:- 功能:删除空目录。
- 示例用法:如果有一个空目录 empty_dir,执行
rmdir empty_dir
即可删除它。但如果目录不为空,该命令将无法执行。
-
rm
:- 功能:删除文件或目录。
- 参数详解:
-r
:递归删除目录及其内容。例如要删除一个包含子目录和文件的目录 complex_dir,可以使用rm -r complex_dir
。-f
:强制删除,不提示确认。在执行一些自动化脚本时可能会用到,但使用时要非常小心,以免误删重要文件。
- 示例用法:
rm unwanted_file.txt
:删除一个文件。rm -rf large_directory
:强制递归删除一个可能包含大量文件和子目录的大型目录。
-
cp
:- 功能:复制文件或目录。
- 示例用法:
cp source_file destination_file
:将 source_file 复制为 destination_file。如果 destination_file 已存在,会覆盖它。cp -r source_directory destination_directory
:递归复制整个目录。例如将一个包含多个子目录和文件的目录 src_dir 复制到另一个位置 dst_dir,可以使用这个命令。
-
mv
:- 功能:移动文件或目录,也可用于重命名文件。
- 示例用法:
mv old_file.txt new_file.txt
:将 old_file.txt 重命名为 new_file.txt。mv file.txt /destination/directory
:将 file.txt 移动到/destination/directory 目录下。mv old_directory new_directory
:如果 new_directory 不存在,将 old_directory 重命名为 new_directory;如果 new_directory 存在且是一个目录,将 old_directory 移动到 new_directory 中。
二、文件查看和编辑
-
cat
:- 功能:查看文件内容并输出到终端。
- 示例用法:
cat file.txt
:将 file.txt 的内容全部输出到终端。如果文件较大,内容会在终端上快速滚动,可能难以阅读。cat file1.txt file2.txt > combined.txt
:将 file1.txt 和 file2.txt 的内容合并并输出到一个新文件 combined.txt。
-
more
和less
:- 功能:分页查看文件内容。
more
:- 操作方法:按空格键翻页,按 Enter 键逐行滚动,按 q 键退出查看。例如查看一个大文件 large_file.txt,可以使用
more large_file.txt
,每次查看一屏内容,方便阅读。
- 操作方法:按空格键翻页,按 Enter 键逐行滚动,按 q 键退出查看。例如查看一个大文件 large_file.txt,可以使用
less
:- 功能特点:比
more
功能更强大,支持搜索功能。可以在查看文件时输入“/search_term”来搜索特定的字符串,按 n 键查找下一个匹配项,按 N 键查找上一个匹配项。按 q 键退出查看。例如less log.txt
可以方便地查看日志文件并进行搜索。
- 功能特点:比
-
head
:- 功能:查看文件开头部分内容。
- 参数详解:
-n
:指定显示的行数。例如head -n 20 file.txt
显示 file.txt 的前 20 行内容。
- 示例用法:查看日志文件的开头部分以快速了解最近的记录。
-
tail
:- 功能:查看文件结尾部分内容。
- 参数详解:
-n
:指定显示的行数。例如tail -n 30 file.txt
显示 file.txt 的后 30 行内容。-f
:实时跟踪文件的增长,常用于查看日志文件。例如tail -f log.txt
会持续显示 log.txt 的最新内容,当文件有新的写入时,会自动更新显示。
- 示例用法:在服务器上查看不断更新的日志文件,以便及时发现问题。
-
vi
或vim
:- 功能:强大的文本编辑器。
- 操作模式:
- 命令模式:刚打开文件时处于命令模式,在此模式下可以使用各种命令进行文件操作,如移动光标、复制、粘贴、删除等。例如按“h”“j”“k”“l”键分别向左、下、上、右移动光标;按“dd”删除一行;按“yy”复制一行;按“p”粘贴。
- 插入模式:按“i”键进入插入模式,可以在文件中输入文本进行编辑。
- 底线命令模式:先按 Esc 键回到命令模式,然后输入“:”进入底线命令模式,可以执行保存、退出、查找替换等操作。例如输入
:wq
保存并退出;:q!
不保存退出;:s/old/new/g
将文件中的所有“old”替换为“new”。
- 示例用法:在服务器上编辑配置文件、代码文件等。
-
nano
:- 功能:简单易用的文本编辑器。
- 操作方法:打开文件后,可以直接进行编辑。底部会有一些简单的提示信息,如保存(Ctrl+O)、退出(Ctrl+X)等。适合不熟悉复杂编辑器的用户。例如
nano config.txt
可以打开并编辑 config.txt 文件。
三、文件权限管理
-
chmod
:- 功能:改变文件或目录的权限。
- 参数详解:
- 权限表示方法:
u
表示所有者(user),g
表示所属组(group),o
表示其他用户(others)。r
表示读权限,w
表示写权限,x
表示执行权限。- 可以用数字表示权限,如 755(所有者有读、写、执行权限,所属组和其他用户有读和执行权限)。数字权限的计算方法是:r=4,w=2,x=1,将每种用户的权限值相加得到最终的数字权限。例如 7=4+2+1,表示读、写、执行权限都有。
- 操作示例:
chmod u+x file.txt
:为 file.txt 的所有者添加执行权限。chmod 644 file.txt
:设置 file.txt 的权限为所有者有读、写权限,所属组和其他用户只有读权限。chmod -R 777 directory
:递归地将 directory 目录及其所有子目录和文件的权限设置为所有用户都有读、写、执行权限。但在实际使用中,将权限设置为 777 是不安全的,应谨慎使用。
- 权限表示方法:
-
chown
:- 功能:改变文件或目录的所有者。
- 参数详解:
chown user:group file.txt
:将 file.txt 的所有者改为 user,所属组改为 group。如果只指定用户而不指定组,例如chown newuser file.txt
,则只改变所有者,所属组不变。
- 示例用法:在多用户环境下,将文件的所有权转让给其他用户或修改文件的所属组。
四、系统信息查看
-
uname
:- 功能:显示系统信息。
- 参数详解:
-a
:显示系统的详细信息,包括内核版本、主机名、处理器架构等。例如uname -a
可能输出“Linux hostname 5.4.0-107-generic #121-Ubuntu SMP Thu Sep 21 15:00:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux”。
- 示例用法:了解系统的基本信息,以便在安装软件或进行系统配置时参考。
-
top
:- 功能:实时显示系统的进程和资源使用情况。
- 显示内容:
- 系统负载:显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。
- 进程列表:列出正在运行的进程信息,包括进程 ID(PID)、用户、CPU 使用率、内存使用率、运行时间等。
- 资源使用统计:显示系统的 CPU 和内存使用情况的汇总信息。
- 操作方法:
- 按“q”键退出 top 命令。
- 按“P”键以 CPU 使用率排序显示进程,按“M”键以内存使用率排序。
- 示例用法:监控系统性能,找出占用资源较多的进程,以便进行优化或故障排除。
-
free
:- 功能:显示系统内存使用情况。
- 参数详解:
-h
:以人类可读的格式显示内存大小,如“1G”“2M”等。
- 显示内容:
- 总内存大小。
- 已使用内存。
- 可用内存。
- 缓冲和缓存内存。
- 示例用法:了解系统内存的使用情况,判断是否需要增加内存或优化内存使用。
-
df
:- 功能:显示磁盘空间使用情况。
- 参数详解:
-h
:以人类可读的格式显示磁盘空间大小,如“10G”“500M”等。-T
:显示文件系统类型。
- 显示内容:
- 磁盘设备文件名。
- 文件系统类型。
- 总容量。
- 已使用容量。
- 可用容量。
- 使用率。
- 挂载点。
- 示例用法:检查磁盘空间是否充足,以便及时清理不必要的文件或扩展磁盘空间。
-
ps
:- 功能:查看系统中的进程。
- 参数详解:
-aux
:显示所有用户的所有进程详细信息。包括进程 ID(PID)、用户、CPU 使用率、内存使用率、启动时间、命令行等。
- 显示内容:
- PID:进程 ID。
- USER:进程所有者。
- %CPU:CPU 使用率。
- %MEM:内存使用率。
- VSZ:虚拟内存大小。
- RSS:实际内存使用大小。
- TTY:控制终端。
- STAT:进程状态,如运行(R)、睡眠(S)、停止(T)等。
- START:进程启动时间。
- TIME:进程累计使用的 CPU 时间。
- COMMAND:启动进程的命令。
- 示例用法:查找特定进程、了解系统中正在运行的程序以及它们的资源使用情况。
五、网络相关命令
-
ping
:- 功能:测试网络连接。
- 参数详解:
-c
:指定发送的 ICMP 回显请求包数量。例如ping -c 5 www.example.com
会向 www.example.com 发送 5 个请求包并显示结果。
- 显示内容:
- 发送的请求包数量。
- 收到的响应包数量。
- 丢失的包数量。
- 往返时间(RTT)的统计信息,包括最小、平均、最大时间。
- 示例用法:检查与某个网站或服务器的网络连接是否正常,以及网络延迟情况。
-
ifconfig
或ip addr
:- 功能:查看网络接口配置信息。
ifconfig
:- 显示内容:显示网络接口的名称(如 eth0、wlan0 等)、IP 地址、子网掩码、广播地址、MAC 地址等信息。还可以显示网络接口的状态,如是否启用、是否正在接收和发送数据包等。
- 示例用法:在服务器或本地计算机上查看网络接口的配置,以便进行网络故障排除或配置网络。
ip addr
:- 显示内容:以更详细的方式显示网络接口的信息,包括接口的索引、状态、MTU(最大传输单元)、IP 地址、子网掩码、广播地址等。还可以显示网络接口所属的网络命名空间(如果有)。
- 示例用法:对于熟悉 Linux 网络配置的用户,
ip addr
提供了更丰富的信息,可用于高级网络配置和故障排除。
-
netstat
:- 功能:查看网络连接状态和统计信息。
- 参数详解:
-t
:显示 TCP 连接。-u
:显示 UDP 连接。-n
:以数字形式显示地址和端口号,而不是尝试解析主机名和服务名。这样可以加快命令的执行速度,并且在脚本中使用时更加方便。-p
:显示与每个连接相关的进程 ID 和进程名称。这对于确定哪个进程正在使用特定的网络连接非常有用。
- 显示内容:
- Proto:连接的协议类型,如 TCP 或 UDP。
- Recv-Q:接收队列中的字节数。
- Send-Q:发送队列中的字节数。
- Local Address:本地地址和端口号。
- Foreign Address:远程地址和端口号。
- State:连接的状态,如 ESTABLISHED(已建立)、LISTEN(监听)、TIME_WAIT 等。
- PID/Program name:如果使用了“-p”参数,会显示与连接相关的进程 ID 和进程名称。
- 示例用法:检查系统上正在进行的网络连接,了解哪些应用程序正在使用网络以及它们的连接状态。可以用于网络故障排除,例如确定是否有异常的连接或端口被占用的情况。
六、压缩和解压缩
-
tar
:- 功能:打包和压缩文件。
- 参数详解:
-c
:创建新的归档文件。-v
:显示详细的操作信息。-f
:指定归档文件名。-z
:使用 gzip 压缩。-j
:使用 bzip2 压缩。-x
:解包归档文件。
- 示例用法:
- 打包:
tar -cvf archive.tar file1 file2 directory
将 file1、file2 和 directory 打包成 archive.tar。这个命令会创建一个名为 archive.tar 的文件,并将指定的文件和目录添加到其中。在执行过程中,会显示每个被添加的文件和目录的名称。 - 解包:
tar -xvf archive.tar
解包 archive.tar。这个命令会将 archive.tar 中的文件和目录提取到当前目录下。同样,在执行过程中会显示每个被提取的文件和目录的名称。 - 压缩并打包:
tar -czvf archive.tar.gz file1 file2 directory
使用 gzip 压缩并打包文件和目录。生成的归档文件名为 archive.tar.gz,可以节省存储空间并方便传输。 - 解压并解包:
tar -xzvf archive.tar.gz
解压缩并解包 gzip 压缩的归档文件 archive.tar.gz。
- 打包:
-
gzip
和gunzip
:- 功能:gzip 压缩和解压缩。
gzip
:- 参数详解:
-r
:递归压缩目录及其内容。如果要压缩一个包含多个文件和子目录的目录,可以使用这个参数。-v
:显示详细的压缩信息,包括压缩前后的文件大小。
- 示例用法:
gzip file.txt
将 file.txt 压缩为 file.txt.gz。压缩后的文件会
- 参数详解:
七. 补充
find:在目录中查找文件。
示例:find /path -name "file.txt"在 /path 目录及其子目录中查找名为 file.txt 的文件。
grep
常用用法:
# -r:递归搜索指定目录下的所有文件(包括子目录中的文件)
grep -r "function" /path/to/directory
# -c:仅输出匹配的行数,不显示具体的匹配行。
grep -c "warning" log.txt
# -l:只列出匹配的文件名,不输出具体的匹配行。
grep -l "keyword" /path/to/*.txt
正则相关:
# .:匹配任意单个字符。
grep "h.t" file.txt
# *:匹配前一个字符的零次或多次出现。
grep "go*gle" file.txt
# +:匹配前一个字符的一次或多次出现, |:表示或的关系 ,():用于分组。
grep -E "go+gle" file.txt
grep -E "apple|banana" fruits.txt
grep -E "gr(a|e)y" colors.txt //包含gray或grey的行
# 多文件搜索
grep "search_string" file1.txt file2.txt file3.txt
grep "search_string" *.txt
其他命令结合:
ps -ef | grep "apache"
find /path/to/directory -type f -exec grep -i "specific_text" {} +
sed
sed
(stream editor)是一种流编辑器,用于对文本进行过滤和转换。它可以在不修改原始文件的情况下,对输入的文本流进行一系列编辑操作,如查找、替换、删除、插入等。
基本语法
sed [选项] '命令' 文件名
或者
sed [选项] -f 脚本文件 文件名
其中,选项
用于指定一些特殊的行为,命令
是具体的编辑操作,文件名
是要处理的文件。如果不指定文件名
,sed
会从标准输入读取数据。
常用选项
- -n:默认情况下,
sed
会输出所有输入行。使用-n
选项后,它只会输出经过编辑命令处理的行。 - -e:用于指定多个编辑命令,多个命令之间用分号(;)分隔。例如:
sed -e '命令1' -e '命令2' 文件名
。 - -f:从指定的脚本文件中读取编辑命令。
- -i:直接修改输入文件,而不是输出到标准输出。注意,使用此选项时要谨慎,因为它会直接覆盖原始文件。
常用命令
替换命令(s)
这是sed
最常用的命令之一,用于替换文本中的字符串。
sed's/原字符串/新字符串/g' 文件名
其中,g
表示全局替换,即替换每行中所有匹配的字符串。如果不使用g
,则只替换每行中第一个匹配的字符串。
示例:
sed's/hello/world/g' file.txt
这将把file.txt
文件中的所有hello
替换为world
。
如果要替换的字符串中包含斜杠(/),可以使用其他分隔符,例如#
:
sed's#http://example.com#https://example.com#' file.txt
删除命令(d)
用于删除匹配指定模式的行。
sed '/模式/d' 文件名
示例:
sed '/error/d' log.txt
这将删除log.txt
文件中所有包含error
的行。
要删除文件中的空行,可以使用:
sed '/^$/d' file.txt
其中,^$
表示空行。
打印命令(p)
与-n
选项一起使用,用于打印匹配指定模式的行。
sed -n '/模式/p' 文件名
示例:
sed -n '/warning/p' log.txt
这将只打印log.txt
文件中包含warning
的行。
插入命令(i)
在匹配指定模式的行之前插入文本。
sed '/模式/i\插入的文本' 文件名
注意,\
是为了换行,使插入的文本在新的一行。
示例:
sed '/^root/i\# This is a comment' /etc/passwd
这将在/etc/passwd
文件中以root
开头的行之前插入# This is a comment
。
追加命令(a)
在匹配指定模式的行之后插入文本。
sed '/模式/a\追加的文本' 文件名
示例:
sed '/^root/a\# Added after root' /etc/passwd
这将在/etc/passwd
文件中以root
开头的行之后插入# Added after root
。
替换整行命令(c)
用指定的文本替换匹配指定模式的行。
sed '/模式/c\替换的文本' 文件名
示例:
sed '/old line/c\New line' file.txt
这将把file.txt
文件中包含old line
的行替换为New line
。
处理多个命令
可以在sed
中使用多个命令,命令之间用分号(;)分隔。
sed's/hello/world/; s/foo/bar/' file.txt
这将先把hello
替换为world
,然后把foo
替换为bar
。
从脚本文件中读取命令
可以将多个sed
命令写入一个脚本文件,然后使用-f
选项执行这些命令。
例如,创建一个名为sed_script.sed
的脚本文件,内容如下:
s/hello/world/
s/foo/bar/
然后执行:
sed -f sed_script.sed file.txt
结合管道使用
sed
可以与其他命令通过管道(|)结合使用,以实现更复杂的文本处理。
例如,与ps
命令结合,查找并处理特定进程的信息:
ps -ef | sed -n '/apache/p'
这将列出所有与apache
相关的进程信息。
sed
命令功能强大且灵活,通过掌握上述常用用法,可以在文本处理和系统管理中提高工作效率。
awk
awk
是一种功能强大的文本处理工具,它以其简洁而灵活的方式处理文本数据。
基本语法
awk [选项] '模式{动作}' 文件名
其中:
选项
:用于指定一些特殊的行为,如-F
用于指定字段分隔符。模式
:用于筛选符合条件的行,模式可以是正则表达式、关系表达式等。如果省略模式,则对所有行执行动作。动作
:是在符合模式的行上执行的操作,通常是打印、计算等。动作部分由一对花括号{}
括起来。文件名
:是要处理的文件。如果不指定文件名,awk
会从标准输入读取数据。
常用选项
- -F:指定输入字段分隔符。默认情况下,
awk
使用空格或制表符作为字段分隔符。
这将以逗号(,)作为字段分隔符,打印awk -F, '{print $1}' file.csv
file.csv
文件中每行的第一个字段。
模式
- 正则表达式模式:使用斜杠(/)括起来的正则表达式。
这将打印awk '/error/{print $0}' log.txt
log.txt
文件中包含error
的行($0
表示整行内容)。 - 关系表达式模式:使用比较运算符(如
>
、<
、==
等)。
假设awk '$3 > 100{print $0}' data.txt
data.txt
文件每行有多个字段,此命令将打印第三个字段大于100的行。
动作
- 打印字段:
awk
将每行数据按字段分隔符分割成多个字段,通过$n
来引用第n
个字段(n
是正整数)。
这将打印awk '{print $1, $3}' file.txt
file.txt
文件中每行的第一个和第三个字段。 - 计算和输出:可以在动作中进行算术运算。
此命令将计算awk '{sum+=$2} END{print "Total sum:", sum}' data.txt
data.txt
文件中第二列所有数值的总和,并在处理完所有行后(END
块)输出总和。 - 条件语句:可以使用
if - else
语句进行条件判断。
这将根据awk '{if ($1 > 10) print "Greater than 10"; else print "Less than or equal to 10"}' numbers.txt
numbers.txt
文件中每行第一个字段的值进行判断并输出相应的信息。
内置变量
awk
有许多内置变量,常用的有:
- NR:表示当前处理的行号。
这将在每行输出前加上行号。awk '{print NR, $0}' file.txt
- NF:表示当前行的字段数。
此命令将输出每行的行号以及该行的字段数。awk '{print "Line", NR, "has", NF, "fields"}' file.txt
- FILENAME:表示当前处理的文件名。
这将在处理awk '{print FILENAME, NR, $0}' file1.txt file2.txt
file1.txt
和file2.txt
时,输出每个文件的文件名、行号以及该行内容。
多行处理
awk
可以通过BEGIN
和END
关键字来处理多行数据。
- BEGIN:在处理文件的第一行之前执行一次。
这个例子中,在处理awk 'BEGIN{print "Processing starts"} {print $0} END{print "Processing ends"}' file.txt
file.txt
文件之前,先输出Processing starts
,处理完所有行后,输出Processing ends
。
从脚本文件中读取命令
可以将awk
命令写入一个脚本文件,然后使用awk
执行该脚本。
例如,创建一个名为awk_script.awk
的脚本文件,内容如下:
BEGIN {
FS = ","
total = 0
}
{
total += $3
}
END {
print "Total:", total
}
然后执行:
awk -f awk_script.awk data.csv
这个脚本以逗号为字段分隔符,计算data.csv
文件中第三列的总和,并在最后输出结果。
awk
在文本处理和数据分析中非常有用,通过不断练习和掌握上述用法,可以实现各种复杂的文本处理任务。
find
find
命令是Linux系统中一个非常强大的文件查找工具,它可以根据文件的各种属性(如文件名、文件类型、文件大小、修改时间等)在指定目录及其子目录中查找符合条件的文件。
基本语法
find [路径] [条件] [操作]
- 路径:指定要查找的目录路径。如果省略路径,则默认从当前目录开始查找。
- 条件:用于指定查找的条件,例如文件名、文件类型、文件大小等。
- 操作:对查找到的文件执行的操作,如打印文件名、删除文件等。如果省略操作,则默认打印查找到的文件路径。
常用条件
按文件名查找
- -name:按照文件名进行查找,支持通配符。
该命令会在find /home/user -name "*.txt"
/home/user
目录及其子目录中查找所有扩展名为.txt
的文件。 - -iname:与
-name
类似,但不区分大小写。
此命令会在find /home/user -iname "readme.txt"
/home/user
目录及其子目录中查找文件名包含readme.txt
的文件,不区分大小写。
按文件类型查找
- -type:根据文件类型进行查找。常见的文件类型有:
f
:普通文件d
:目录l
:符号链接
该命令会在find /var/log -type f
/var/log
目录及其子目录中查找所有普通文件。
按文件大小查找
- -size:根据文件大小进行查找。单位可以是
b
(块,512字节)、c
(字节)、k
(千字节)、M
(兆字节)、G
(吉字节)等。
此命令会在find /home/user -size +10M
/home/user
目录及其子目录中查找大小大于10兆字节的文件。
这将查找大小小于100千字节的文件。find /home/user -size -100k
按文件修改时间查找
- -mmin:根据文件的最后修改时间,以分钟为单位进行查找。
该命令会在find /tmp -mmin -10
/tmp
目录及其子目录中查找在过去10分钟内被修改过的文件。 - -mtime:以天为单位,根据文件的最后修改时间进行查找。
此命令会查找find /var/log -mtime +7
/var/log
目录及其子目录中最后修改时间大于7天的文件。
按文件权限查找
- -perm:根据文件的权限进行查找。
该命令会在find /home/user -perm 755
/home/user
目录及其子目录中查找权限为755
的文件或目录。
常用操作
打印文件名
默认情况下,find
命令会打印查找到的文件路径。也可以使用-print
明确指定打印操作。
find /etc -name "*.conf" -print
执行命令
- -exec:对查找到的每个文件执行指定的命令。命令的结尾需要加上
\;
。
该命令会在find /home/user -name "*.txt" -exec grep "keyword" {} \;
/home/user
目录及其子目录中查找所有扩展名为.txt
的文件,并在每个文件中查找包含keyword
的内容。 - -ok:与
-exec
类似,但在执行命令前会提示用户确认。
此命令会在find /home/user -name "oldfile*" -ok rm {} \;
/home/user
目录及其子目录中查找以oldfile
开头的文件,并在删除每个文件前提示用户确认。
删除文件
- -delete:直接删除查找到的文件。使用时要谨慎,因为删除操作是不可逆的。
该命令会删除find /tmp -type f -mmin +60 -delete
/tmp
目录及其子目录中60分钟前修改过的普通文件。
组合条件
可以使用逻辑运算符-and
(也可以省略不写)、-or
、-not
来组合多个条件。
find /home/user -name "*.txt" -or -name "*.log"
此命令会在/home/user
目录及其子目录中查找扩展名为.txt
或.log
的文件。
find /home/user -not -name "*.txt"
这将查找/home/user
目录及其子目录中文件名不是以.txt
结尾的文件。
通过灵活运用find
命令的各种条件和操作,可以高效地在Linux系统中查找和管理文件。