Linux文件与目录管理常用命令
程序员文章站
2022-07-14 10:20:17
...
目录与路径
符号含义
. 表示当前目录
.. 表示上一层目录
- 表示前一个目录
~ 表示用户所在的家目录
目录操作
cd:切换目录
pwd:显示当前目录
mkdir:创建一个新目录
rmdir:删除一个空目录
路径变量打印
echo $PATH
当运行某个命令时,比如 pwd,系统是根据PATH的配置去PATH定义的目录下查找名为pwd的可运行档, 如果存在多个pwd可运行档,则先找到的那个被执行。
文件与目录管理
显示文件列表
ls
ls -la //常用的参数,列出全部文件和对应的文件属性权限等
ls -la /tmp/ 后面可加路径,此命令列出tmp目录下的文件列表,默认是显示当前目录
复制
cp 源文件 目标目录或文件
关键参数
-i 若目标文档已存在,会咨询是否覆盖(常用)
-a 相当于-pdr(常用)
-p 连同文件属性一起复制,而非使用默认属性
-d 若源文档为连结档的属性,则复制连结档属性而非文件本身
-r 递回持续复制,用于目录的复制
删除
rm
-r 递回删除,常用于删除目录
-f 忽略不存在的文件
-i 删除前咨询是否动作
移动或重命名
mv 一个或多个源目录|文档 已存在的目录 //移动
mv 源目录|文档 当前未存在的目录|文档 //重命名
关键参数:
-f 直接覆盖
-i 询问后覆盖
内容查看
一次性打印显示
cat 从第一行开始显示内容
参数:
-n 显示行号
-A 显示处隐藏的特殊字符
翻页显示
less 文档名
命令操作:
空白键 向下翻一页
[pagedown] 向下翻一页
[pageup] 向上翻一页
/字串 向下搜寻
?字串 向上搜寻
n 向下查找
N 向上查找
q 离开 less 这个程序
数据截取
head -n 10 filename 显示前10行的内容
tail -n 10 filename 显示后10行的内容
head -n 20 filename | tail -n 10 显示第11到20行的内容
新建文件或修改文件时间
mtime 文件的内容被修改时,该时间会更新
ctime 文件的状态改变时,比如权限和属性,就会更新这个时间
atime 文件的内容被取用时,比如使用cat去读取文档,就会更新这个时间
touch filename //新建文档
touch -t 1911250310 filename //修改文档时间为 2019/11/25 3:10
默认权限和隐藏权限
默认权限 umask
这里的默认权限为022,表示要被去掉权限对应的数字,即群组和其他人的W权限被拿掉了,新建目录或文件时,会按照默认权限赋予对应的属性。
创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x
隐藏属性
chattr [options] filename 配置隐藏属性
关键参数:
+ 添加特殊参数
- 移除特殊参数
= 配置一定,且仅有后面接的参数
a 该文件只能添加数据,不能删除也不能修改数据,只有root才能配置该属性
i 该文件不能被删除、改名、配置连结,也无法写入或新增数据,只有root能配置
显示隐藏属性:
lsattr [-adR] filename
-a 显示隐藏档的属性
-d 如果接的是目录,仅列出目录本身的属性而非目录内的档名;
-R 列出子目录的数据
查看文件类型
file filename
查找命令和文件
查找命令名
which [command]
举例:
root@kali:/tmp# which ls
/usr/bin/ls
查找文件名 whereis,locate和find
whereis 只用于搜索程序名
-b 二进制文件
-m man说明文件
-s 源代码文件
举例:
root@kali:~# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
locate filename
locate etc/sh 查找etc目录下以sh开头的文件
whereis和locate都是基于数据库查找的,所以速度比较快,但却不是实时的,可以通过命令updatedb
更新数据库。
find 路径 参数 动作
选项参数
-name filename 搜寻文件名称为filename的文件
-type TYPE 文件类型有正规文件f,装置文件b、c,目录d,连结档l,socket(s)等
-perm mode 搜寻文件权限等于mode的文件
举例:
find /tmp/ -name test 查找tmp目录下名为test的文件
find /tmp/ -name "*one*" 查找tmp目录下包含one字眼的文件
find /root/ -perm 777 查找根目录下权限为777的文件
基于时间查找:
find /tmp/ -mtime 4 查找4-5天那一天被改动过的文档
find /tmp/ -mtime +4 查找5天前被改动过的文档
find /tmp/ -mtime -4 查找4天内被改动的文档
find /tmp/ -newer test 查找比tmp目录下比test还要新的文档
参考文章
下一篇: linux常用命令-文件目录管理*