1.开发背景
记录 linux 下对文件操作的指令
2.开发需求
记录常用的文件操作指令
3.开发环境
linux 操作系统,如果不支持需要查看是否存在对应的可执行文件
4.实现步骤
4.1 查找字符串
查找指定目录下包含指定的字符串
grep -rn "Timer frequency" ./
# 即在 ./ 目录下查找字符串 "Timer frequency"
#-r 多级目录遍历
#-n 结果显示行号
4.2 查找文件
find ./ -name "zboot.img"
# 即在 ./ 目录下查找文件 "zboot.img"
4.3 查看文件大小
推荐使用 du -sh
du -sh ./
# 查看当前目录大小 (./)
# -h 显示文件大小单位
# -s 只显示总大小du -sh ./*
# 罗列当前目录文件大小
4.4 补全绝对路径
常用于在当前路径下补全文件的绝对路径
realpath rc.local
事实上 realpath 没有判断是否存在,如下
不过 realpath 可以显示软链接的绝对路径,如下
4.5 定位可执行文件路径
有时候我们需要定位某个可执行文件的存在路径,例如编译链,所以需要用到 which
which find
4.6 软链接
事实上很多时候我们需要用到快捷链接的形式,类似 windows 下面的快捷方式
ln -s ./test.c ./test_soft.c
# 创建 ./test.c 为实际目录,./test_soft.c为软连接目录ln -snf ./test2.c ./test_soft.c
# 重新指定cp -d test.ln ../
# 拷贝软链接需要添加-d
4.7 拷贝
cp 使用很多,还是有些细节,推荐使用 cp -a
默认拷贝文件会出现文件格式的变动,可以通过添加参数选择拷贝模式
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
参考链接:linux cp命令保留文件权限_cp 权限-CSDN博客