04-文件命令
原创大约 3 分钟
创建文件夹
mkdir
# 创建多级文件夹
mkdir -p创建空文件
touch
# 修改文件属性
touch -d "1000 day ago" 1.log
touch -d "2001-08-27" 1.log查看文件属性
stat# touch 1.log
# stat 1.log
文件:"1.log"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4745483 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2024-05-08 23:39:58.490565625 +0800
最近更改:2024-05-08 23:39:58.490565625 +0800
最近改动:2024-05-08 23:39:58.490565625 +0800
创建时间:-
# touch -d "2001-08-27" 1.log
# stat 1.log
文件:"1.log"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:4745483 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2001-08-27 00:00:00.000000000 +0800
最近更改:2001-08-27 00:00:00.000000000 +0800
最近改动:2024-05-08 23:41:43.841431593 +0800
创建时间:-删除
rm: 是 "remove" 的简写
# 直接删除文件
rm <文件名>
# 二次确认
rm -i
# 删除文件夹 -r 或 -R: 这个选项代表 "recursive"(递归)
rm -r <目录或文件名>
# 删除文件夹,提示确认
rm -ri <目录或文件名>
# -f: 代表 "force"(强制),不提示用户确认
rm -rf <目录或文件名>移动
mv [选项] 源文件或目录 目标文件或目录
mv
# 强制,不会询问而直接覆盖
mv -f复制
cp
cp -arf-a: 这是一个综合选项,代表 "archive"(存档)。它实际上是一系列选项的组合,包括 -dR --preserve=all。这意味着在复制时尽可能保持源文件的所有属性不变,包括权限、时间戳、软链接等。它还会递归复制目录内容,类似于 rm -r 中的 -r 选项。
-r 或 -R: 同样代表 "recursive"(递归),当复制目录时,这个选项使 cp 命令递归地复制源目录下的所有内容,包括子目录。
-f: 代表 "force"(强制),与 rm -rf 中的 -f 类似,它让 cp 命令在遇到目标文件已存在的情况下,不经询问直接覆盖现有文件,而不是终止或提示用户。我们来把这些命令串出来写个shell脚本运行一下,初期一定要多写,不要嫌简单,也不要嫌麻烦,当写到一定程度,工作中想到什么问题立马就能动手写出一个实用的shell脚本了:
#!/bin/bash
# 创建一个目录
mkdir mydir
# 创建一个空文件
touch myfile.txt
# 移动文件
mv myfile.txt mydir/
# 复制文件
cp mydir/myfile.txt mydir/myfile_copy.txt
# 看下这两个txt文件的状态
stat mydir/*.txt
# touch 改变下文件状态再查看有什么变化
touch -d "2020-08-27" mydir/myfile_copy.txt
stat mydir/myfile_copy.txt
# 删除目录及其内所有文件
rm -rf ./mydir