文件的创建及属性管理
概述
linux中一切皆文件,目录也是文件,文件除了文件内容外还有文件属性:比如属主、属组、
文件路径分为绝对路径和相对路径,绝对路径就是从根目录/
开始的全路径;相对路径就是在当前路径下进行的路径,例如:
1)cd /home/weblogic/logs
是相对路径操作
2)cd /home/weblogic
cd logs
此为相对路径操作
主要操作
文件的创建:touch
目录的创建: mkdir
目录删除命令: rmdir
进入目录:cd
文件的删除:rm
文件的拷贝,迁移,重命名: mv、cp
文件属性的查看: ls
查找文件: find
命令详解
touch命令
touch
命令用于创建空文件或更新已有文件的时间戳。
创建新文件
要创建一个新文件,可以在 touch
命令后加文件名,如下所示:
touch newfile.txt
上述命令将在当前目录下创建一个名为 newfile.txt
的空文件。如果该文件已经存在,则 touch
命令将更新其访问和修改时间戳。
指定时间戳
touch
命令还可以用于指定文件的访问和修改时间戳。要指定文件的时间戳,可以使用 -t
参数,后面跟着时间戳。时间戳的格式为 [[CC]YY]MMDDhhmm[.ss]
,其中 CC
表示世纪,YY
表示年份,MM
表示月份,DD
表示日期,hh
表示小时数,mm
表示分钟数,.ss
表示秒数。例如,下面的命令将把 file.txt
的访问和修改时间戳设置为 2022 年 10 月 1 日 12:30:00:
touch -t 202210011230.00 file.txt
mkdir 命令
用于创建新目录或子目录。要创建新目录,可以在 mkdir
命令后跟目录名称,如下所示:
mkdir newdir
上述命令将在当前目录下创建一个名为 newdir
的新目录。如果要在其他目录下创建新目录,可以指定目录路径,如下所示:
mkdir /home/user/newdir
上述命令将在 /home/user
目录下创建一个名为 newdir
的新目录。要创建多级目录,可以使用 -p
参数,如下所示:
mkdir -p /home/user/newdir/subdir
上述命令将在 /home/user
目录下创建一个名为 newdir
的新目录,并在其中创建一个名为 subdir
的子目录。
rmdir命令
rmdir
命令用于删除空目录。
此命令很少用一般使用与rm -r
实现
cd命令
cd
命令用于切换当前工作目录。要切换到指定的目录,可以在 cd
命令后跟目录路径。
常用用法
cd ..
返回上级目录
cd .
.
表示当前目录
cd
返回当前用户的家目录
cd ~
:表示切换到当前用户的家目录
cd -
:表示切换到上次所在目录(反复敲,会在两个目录间循环跳转)
rm命令
rm
命令用于删除文件和目录。
如果要删除多个文件,可以在rm
命令后加上多个文件名,如下所示:
rm file1.txt file2.txt file3.txt
上述命令将删除当前目录下的file1.txt
、file2.txt
和file3.txt
文件。如果要删除目录,可以使用-r
参数,如下所示:
rm -r dirname
上述命令将删除当前目录下的dirname
目录及其所有子目录和文件。要删除文件时,最好使用-i
参数,以便在删除前进行确认,以免误删。
rm -rf /
下岗命令,root用户使用该命令在生产操作,就可以直接下岗了
cp命令
使用cp
命令可以将文件拷贝到目标目录中,例如:
cp source_file1 source_file2 ... destination_directory
cp /etc/hosts /root/Desktop/aaa
如果aaa
是目录,则将文件拷贝到aaa
目录下;如果aaa
不存在,则将文件拷贝到Desktop
下并改名为aaa
。
可用参数:
r
: 拷贝目录a
: 保留原有的文件属性
root
用户默认会提醒是否覆盖,可以通过alias cp='cp -i'
实现;普通用户直接覆盖。
mv命令
mv
命令与cp
基本一致,只是将原文件剪切到目标目录。可以使用mv
实现重命名操作。
mv filename1 filename2
ls命令
ls
命令用于列出指定目录下的文件和子目录。如果不指定目录,则默认列出当前目录下的文件和子目录。
命令格式
ls [options] [file/dir]
options
: 可选参数,用于指定输出格式和排序方式等file/dir
: 可选参数,用于指定要列出的文件或目录。如果不指定,则默认列出当前目录下的文件和子目录。
常用选项
a
: 列出所有文件,包括隐藏文件。l
: 列出详细信息,包括文件类型、权限、所有者、大小、修改时间等。d
:查看目录,一般与l
一起用,例如:ls -ld /home
查看目录的权限h
: 以易读的格式显示文件大小,如KB、MB等。t
: 按照修改时间排序,最新修改的文件在前。r
: 反向排序,最老的文件在前。S
: 按照文件大小排序,最大的文件在前。R
: 递归列出子目录下的文件和子目录。Z
:列出文件的安全上下文
ls -l详解
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
d :目录文件
b:块文件(存储设备)
l:软链接
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
文件拥有者对该文件的权限
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
所属组对该文件的权限
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
其他人(除了文件拥有者和所属组以外的人)对该文件的权限
其中:r 读 w 写 x 执行
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
. :该文件具备linux的安全上下文
- :表示文件是ACL权限
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
文件的链接数量
drwxrwxr-x. 1 z zg 0 Dec 6 03:27 1.txt
z :文件所有者
zg:文件所属组
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
文件大小
drwxrwxr-x. 1 z z 0 Dec 6 03:27 1.txt
月,日,时:分 文件名
find命令
find
命令用于在指定的目录中搜索文件,并执行指定的操作。
命令格式
find [path] [options] [expression]
path
: 搜索路径options
: 可选参数expression
: 匹配表达式
常用选项
name
: 按照文件名进行匹配,支持通配符type
: 按照文件类型进行匹配,如:f
表示普通文件,d
表示目录size
: 按照文件大小进行匹配,支持+
和``表示大于或小于某个值mtime
:按照文件修改时间进行匹配,支持+
和``表示大于或小于某个时间
示例
- 搜索当前目录下所有以
.txt
结尾的文件:find . -name "*.txt"
- 搜索当前目录及其子目录下所有的目录:
find . -type d
- 搜索当前目录下所有大小大于1MB的文件:
find . -size +1M
- 搜索当前目录下修改时间在7天以内的文件:
find . -mtime -7
常用脚本
找到/home/weblogic目录下得所有目录并按目录名各自打包
find /home/weblogic -maxdepth 1 -mindepth 1 -type d -exec tar -cvzf {}.tar {} \;