
本文共 2554 字,大约阅读时间需要 8 分钟。
在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux。在上一篇随笔中,详细记录了与Linux文件和目录管理相关的一些重要命令,包括目录与路径相关的命令、管理文件与目录的命令、查看文件内容命令等。本文将继续详细记录与Linux文件和目录管理相关的其他一些重要命令。
一、修改文件时间与创建新文件
在上一篇随笔介绍ls命令时,就有提到每个文件在Linux下面都会记录三个主要的修改时间:modification time (mtime)、status time (ctime)和access time (atime)。其中:
- mtime(修改时间):当文件内容发生变更时,该时间会更新。
- ctime(状态时间):当文件的权限或属性发生改变时,该时间会更新。
- atime(访问时间):当文件内容被读取或修改时,该时间会更新。
默认情况下,ls命令显示的是文件的mtime,即文件内容上次更改的时间。然而,在某些情况下,文件的时间可能会出错,例如安装Linux系统时可能会出现文件时间为未来某个时间的情况。这时,我们需要使用touch命令来修改文件时间或创建新文件。
touch命令的使用方法如下:
touch [-acdmt] <文件>文件>
其中,参数的意义如下:
- -a:仅修订文件的access time(访问时间)。
- -c:仅修改文件的ctime(状态时间),如果文件不存在则不会创建新文件。
- -d:指定修订的日期格式,可用--date="日期时间"。
- -m:仅修订文件的modification time(修改时间)。
- -t:指定修订的时间格式,可用[YYMMDDhhmm]。
通过实例可以了解touch命令的使用方法:
touch test.txt
- 复制一个文件并保留原有属性:
- 修改文件日期为三天前的日期:
- 创建带有特定日期的新文件:
- umask(文件默认权限)
- 对于文件,默认权限为-rw-rw-r--(即666)。
- 对于目录,默认权限为drwxrwxrwx(即777)。
- 文件:-rw-rw-r--(缺少x权限)。
- 目录:drwxr-xr-x(缺少t权限)。
- 隐藏属性(chattr和lsattr)
- +i:文件无法被删除或修改。
- +a:文件只能增加数据,无法删除。
- +c:文件自动压缩,读取时解压。
- +d:文件不适用于dump备份。
- +i:文件不可被删除。
- +j:文件使用journalized journaling。
- SUID(Set UID)
- SGID(Set GID)
- Sticky Bit
- 设置特殊权限
- 4:SUID
- 7:SGID
- 5:Sticky Bit
- which(寻找可执行文件)
- whereis(寻找特定文件或目录)
- locate(寻找特定文件或目录)
- find(强大搜索工具)
cp -a ~/.bashrc bashrc
touch -d "3 days ago" bashrc
touch -t 1304242323 bashrc
touch命令不仅可以修改文件时间,还可以创建新文件。默认情况下,如果文件不存在,touch命令会创建一个空文件。
二、文件与目录的默认权限与隐藏权限
umask命令用于设置文件和目录的默认权限。默认情况下,umask的值为022,这会对文件和目录的默认权限产生影响:
umask 022的具体效果:
通过修改umask值,可以改变文件和目录的默认权限。例如,设置umask为002,可以使文件默认权限为-rw-rw-r--。
在Linux系统中,隐藏属性可以通过chattr命令设置或修改,通过lsattr命令查看。常见的隐藏属性包括:
例如:
chattr +i attrtest
设置+ i属性后,即使用户为root也无法删除该文件。
三、文件特殊权限:SUID/SGID/Sticky Bit
SUID权限允许一般用户在执行程序时,暂时获得程序的拥有者权限。例如,/usr/bin/passwd文件的权限为-rwsr-xr-x,表示普通用户执行该程序时可获得root的权限。
SGID权限允许一般用户在执行程序时,获得程序的拥有者组ID。例如,某些系统程序可以使用SGID权限来提高安全性。
Sticky Bit权限仅适用于目录,表示只有目录的拥有者和root可以删除目录中的文件。例如,/tmp目录的权限为drwxrwxrwt,表示任何用户可以在/tmp下创建、修改文件,但只有拥有者和root可以删除文件。
要将文件设置为具有SUID/SGID/Sticky Bit权限,可以使用chmod命令:
chmod 4755 filename
其中,前面的数字表示:
四、文件类型(file)
file命令用于确定文件的类型。例如:
file ~/.bashrc
输出结果为:
.bashrc: ASCII text
file命令可以识别文件的格式,包括文本文件、二进制文件等。
五、搜索文件(find、whereis、locate)
在Linux系统中,find、whereis、locate命令用于搜索文件。其中,find命令从硬盘搜索,效率较低;whereis和locate命令从数据库搜索,效率较高。
which [-a] command
例如:
which passwd
输出结果为:
/usr/bin/passwd
whereis [-bmsu] filename
例如:
whereis -b passwd
输出结果为:
passwd: /usr/bin/passwd /etc/passwd
locate filename
例如:
locate passwd
输出结果为:
/etc/passwd
find命令功能强大,支持丰富的参数。例如:
find / -mtime 0
表示搜索当前目录下mtime为0的文件,即最近修改的文件。
通过find命令可以根据时间、权限、大小、文件名等条件搜索文件。
总结
通过本文的学习,我们掌握了修改文件时间、设置默认权限、管理隐藏属性、设置特殊权限以及搜索文件等关键技能。这些技能在实际操作Linux系统时非常有用,可以帮助我们更高效地管理文件和目录。
发表评论
最新留言
关于作者
