Linux 常用命令——文件目录篇(保姆级说明)

文件及目录类

列出当前目录中的文件和子目录(ls)

bash 复制代码
ls [-参数] [name...]

# 列出所有根目录
ls /

# 列出所有txt文件
ls *.txt

参数:

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

-d 只列出目录(不递归列出目录内的文件)。

-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。

-r 倒序显示文件和目录。

-t 将按照修改时间排序,最新的文件在最前面。

-A 同 -a ,但不列出 "." (目前目录) 及 "..." (父目录)

-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

-R 递归显示目录中的所有文件和子目录。

显示当前工作目录的路径(pwd)

bash 复制代码
pwd [--help][--version]

# 查看当前所在目录
pwd

切换工作目录(cd)

bash 复制代码
# dirName:要切换的目标目录,可以是相对路径或绝对路径。
cd [dirName]

cd /usr/bin

创建新目录( mkdir)

bash 复制代码
# -p 确保目录名称存在,不存在的就建一个。
mkdir [-p] dirName

mkdir folder

# folder目录下建立test文件夹,加了-p参数后,若folder不存在则直接新建。
mkdir -p folder/test

删除空目录(rmdir)

bash 复制代码
# -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
rmdir [-p] dirName

# 删除目录test
rmdir test

# 递归删除目录
rmdir -p 目录1/test

删除一个文件或者目录

rm:删除文件或目录

rm file_name

rm -r 目录1/test # 递归删除目录及其内容

bash 复制代码
rm [参数] name

rm  test.txt 

# 删除目录必加参数r
rm  -r  homework  

参数

-i 删除前逐一询问确认。

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r 将目录及以下之档案亦逐一删除。

复制文件或目录(cp)

bash 复制代码
cp [选项] 源文件 目标文件

# 复制文件并重命名
cp file.txt /path/to/destination/newfile.txt

# 递归复制目录及其内容
cp -r /path/to/source_dir /path/to/destination/

参数

-r 或 -R:递归复制目录及其内容(用于复制目录)。

-i:交互模式,覆盖前提示用户确认。

-f:强制复制,覆盖目标文件而不提示。

-v:显示详细的复制过程(verbose)。

-p:保留文件的原始属性(如权限、时间戳等)。

-a:归档模式,等同于 -dpR,保留所有文件属性和递归复制目录。

-u:仅当源文件比目标文件新时才复制(更新模式)。

-l:创建硬链接而不是复制文件。

-s:创建符号链接(软链接)而不是复制文件。

移动或重命名文件或目录(mv)

bash 复制代码
mv [参数] source dest

# 文件 aaa 改名为 bbb 
mv aaa bbb

# info 目录放入 logs 目录中
mv info/ logs

参数

-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。

-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。

-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

-n: 不要覆盖任何已存在的文件或目录。

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

创建空文件或更新文件的时间戳(touch)

bash 复制代码
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录...]

# 修改文件"testfile"的时间属性为当前系统时间
touch testfile              

参数:

a 改变档案的读取时间记录。

m 改变档案的修改时间记录。

c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

f 不使用,是为了与其他 unix 系统的相容性而保留。

r 使用参考档的时间记录,与 --file 的效果一样。

d 设定时间与日期,可以使用各种不同的格式。

t 设定档案的时间记录,格式与 date 指令相同。

--no-create 不会建立新档案。

--help 列出指令格式。

--version 列出版本讯息。

连接和显示文件内容(cat)

bash 复制代码
cat [选项] [文件]

# 查看文件内容
cat filename

# 创建文件
cat > filename

参数说明:

-n:显示行号,会在输出的每一行前加上行号。

-b:显示行号,但只对非空行进行编号。

-s:压缩连续的空行,只显示一个空行。

-E:在每一行的末尾显示 $ 符号。

-T:将 Tab 字符显示为 ^I。

-v:显示一些非打印字符。

将文本输出到标准输出(echo)

bash 复制代码
# 追加内容进test.txt
echo  内容>> test.txt

# 显示字符串
echo "Hello, World!"

逐页显示文本文件内容(more/less:)

bash 复制代码
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

# 逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示
more -s testfile

# 从第 20 行开始显示 testfile 之文档内容。
more +20 testfile

参数:

-num 一次显示的行数

-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声

-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能

-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料

-s 当遇到有连续两行以上的空白行,就代换为一行的空白行

-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)

+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示

+num 从第 num 行开始显示

fileNames 欲显示内容的文档,可为复数个数

bash 复制代码
less [参数] 文件 

# 查看文件
less log2013.log

# ps查看进程信息并通过less分页显示
ps -ef |less

参数:

-b <缓冲区大小> 设置缓冲区的大小

-e 当文件显示结束后,自动离开

-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g 只标志最后搜索的关键词

-i 忽略搜索时的大小写

-m 显示类似more命令的百分比

-N 显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-Q 不使用警告音

-s 显示连续空行为一行

-S 行过长时间将超出部分舍弃

-x <数字> 将"tab"键显示为规定的数字空格

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b 向上翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一页

回车键 滚动一行

pagedown\]: 向下翻动一页 \[pageup\]: 向上翻动一页 #### 在文件中搜索指定文本(grep) ```bash grep [options] pattern [files] # 在文件 file.txt 中查找字符串 "hello" grep hello file.txt ``` **常用参数:** -i:忽略大小写进行匹配。 -v:反向查找,只打印不匹配的行。 -n:显示匹配行的行号。 -r:递归查找子目录中的文件。 -l:只打印匹配的文件名。 -c:只打印匹配的行数。 #### 修改文件或目录的权限(chmod) ```bash chmod [-cfvR] [--help] [--version] mode file # 将文件 file1.txt 设为所有人皆可读取 chmod a+r file1.txt chmod 777 file1.txt ``` **参数:** u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 * 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。 chmod也可以用数字来表示权限 r=4,w=2,x=1 若要 rwx 属性则 4+2+1=7; 若要 rw- 属性则 4+2=6; 若要 r-x 属性则 4+1=5。 -c : 若该文件权限确实已经更改,才显示其更改动作 -f : 若该文件权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) --help : 显示辅助说明 --version : 显示版本 #### 在文件系统中查找文件和目录(find) ```bash find [路径] [匹配条件] [动作] # 查找当前目录下名为 file.txt 的文件: find . -name file.txt # 查找 /home 目录下大于 1MB 的文件: find /home -size +1M ``` **参数:** 路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。 expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。 匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份: -name pattern:按文件名查找,支持使用通配符 \* 和 ?。 -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。 -size \[±\]size\[cwbkMG\]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。 -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。 -user username:按文件所有者查找。 -group groupname:按文件所属组查找。 动作: 可选的,用于对匹配到的文件执行操作,比如删除、复制等。 find 命令中用于时间的参数如下: -amin n:查找在 n 分钟内被访问过的文件。 -atime n:查找在 n*24 小时内被访问过的文件。 -cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。 -ctime n:查找在 n* 24 小时内状态发生变化的文件(例如权限)。 -mmin n:查找在 n 分钟内被修改过的文件。 -mtime n:查找在 n\*24 小时内被修改过的文件。 在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。 正数应该表示时间之前,负数表示时间之内。 例如:-mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件。 关于时间 n 参数的说明: +n:查找比 n 天前更早的文件或目录。 -n:查找在 n 天内更改过属性的文件或目录。 n:查找在 n 天前(指定那一天)更改过属性的文件或目录。

相关推荐
食咗未8 分钟前
Linux USB HOST EXTERNAL STORAGE
linux·驱动开发
食咗未9 分钟前
Linux USB HOST HID
linux·驱动开发·人机交互
Xの哲學9 分钟前
Linux SLAB分配器深度解剖
linux·服务器·网络·算法·边缘计算
齐鲁大虾1 小时前
UOS(统信操作系统)如何更新CUPS(通用Unix打印系统)
linux·服务器·chrome·unix
虾..2 小时前
Linux 简单日志程序
linux·运维·算法
huoxingwen3 小时前
Ubuntu 22.04 上 VMware Workstation 点击虚拟机窗口就消失的解决历程
linux·运维·ubuntu
姚青&3 小时前
Linux 常用命令之基本命令
linux·运维·服务器
一路往蓝-Anbo3 小时前
【第05期】数据的微观世界 (五) —— 浮点数 vs 定点数:MCU的数学课
linux·stm32·单片机·嵌入式硬件·物联网
G_H_S_3_3 小时前
【网络运维】企业级监控平台Zabbix:部署与实践指南
linux·运维·网络·zabbix
小周学学学4 小时前
Vcenter Auto Deploy安装与使用
linux·运维·服务器