其他相关博文:
目录
一、文件管理
1、ls
ls命令用来列出指定目录下的文件及子目录,如果不指定目录则列出当前目录下的文件及子目录。语法格式如下:
ls [选项] [路径或文件]
- -a:列出指定目录下的所有文件及子目录,包含隐藏文件。Linux系统将“.”开头的文件或目录视为隐藏文件。
- -A:显示除隐藏文件“.”和“..”以外的所有文件列表;
- -l:列出指定目录下的文件及子目录的权限等详细信息,不包含隐藏文件。
- -F:在每个输出项后追加特殊文件的类型标识符。具体含义为:“*”表示具有可执行权限的文件;“/”表示目录;“@”表示符号链接;“|”表示命令管道FIFO;“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符。
- -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的依据是文件的状态改变时间;
- -i:显示文件索引节点号(inode),一个索引节点代表一个文件。
- -m:用“,”号区隔每个文件和目录的名称;
- -n:以用户识别码和群组识别码替代其名称;
- -r:以文件名反序排列并输出目录内容列表;
- -s:显示文件和目录的大小,以区块为单位;
- -t:根据文件和目录的更改时间排序;
以上选项可以根据实际情况组合使用。
2、touch
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,则会新建一个新的文件。语法格式如下:
touch [选项] [文件名称或目录名称]
- -a:改变文件的访问时间(atime)。
- -m:改变文件的修改时间(mtime)。
- -d:使用指定的时间字符串来设置时间戳。例如:touch -d "2021-12-31 23:59:59" test.txt
- -t:使用指定的时间格式(如[[CC]YY]MMDDhhmm[.ss])来设置时间戳。例如touch -t 202310011200.00 file.txt会将文件的时间戳设置为2023年10月1日12时0分。
- -r:使用指定文件的时间戳来设置目标文件的时间戳。例如,touch -r test01.txt test02.txt会将test02.txt的时间戳设置为test02.txt的时间戳。
- -c:如果文件不存在,不要创建新文件。
(1)、创建空文件
创建一个空文件test.txt
[elasticsearch@node01 data]$ touch test.txt
[elasticsearch@node01 data]$ ls -l
(2)、更新文件的访问和修改时间
更新test.txt的访问和修改时间为当前时间。
[elasticsearch@node01 data]$ touch test.txt
[elasticsearch@node01 data]$ ls -l
(3)、指定时间字符串更新文件的时间戳
更新文件test.txt的时间戳为2025-03-18 12:00:00
[elasticsearch@node01 data]$ touch -d "2025-03-18 12:00:00" test.txt
(4)、指定时间字符串改变文件的修改时间(mtime)
更新文件test.txt的修改时间为2025-03-18 14:30:00
[elasticsearch@node01 data]$ touch -md "2025-03-15 14:30:00" test.txt
[elasticsearch@node01 data]$ ls -l
3、rm
rm命令用于删除一个文件或者目录,语法格式如下:
rm [选项] [文件或者目录命令]
- -i:删除文件前逐一询问确认。
- -f:强制删除文件。
- -r:递归删除目录及目录中的文件。
(1)、删除文件
删除文件test02.txt
- 直接删除
[elasticsearch@node01 ~]$ rm test02.txt
- 删除前确认
[elasticsearch@node01 ~]$ rm -i test02.txt
(2)、删除目录
删除目录必须加参数-r,否则无法删除。
删除目录data
[elasticsearch@node01 ~]$ rm -r data
4、mv
mv命令用于文件、目录更改名称,或者用于文件、目录移动位置,语法格式如下:
mv [选项] [源文件名称 | 源目录名称] [目标文件名称 | 目标目录名称]
- -b:若目标文件或目标目录存在,则先备份再执行覆盖操作。
- -i:若移动的源文件或源目录与目标文件或目标目录同名,则先询问是否覆盖。输入 y 表示覆盖,输入 n 表示取消操作。
- -f:若移动的源文件或源目录与目标文件或目标目录同名,强制覆盖。
- -n:不要覆盖任何已存在的文件或目录。
(1)、修改文件名称
修改文件test01.txt 为 test.txt
[root@node01 data]# mv test01.txt test.txt
(2)、修改目录名称
修改目录/root/data/data 为 /root/data/data_test
[root@node01 data]# mv /root/data/data /root/data/data_test
(3)、移动文件
移动文件/root/data/test.txt 至 目录/root/data/data_test/下
[root@node01 data_test]# mv /root/data/test.txt /root/data/data_test/
(4)、移动目录
移动目录/root/data/data_test/ 至 目录/root/下
[root@node01 ~]# mv /root/data/data_test/ /root/
5、cp
cp命令用于本地将文件或者目录复制到另一个目录下,语法格式如下:
cp [选项] [源文件名称 | 源目录名称] [目标文件名称 | 目标目录名称]
- -r或-R:递归复制目录及其子内容(用于复制目录)。
- -i:文件或目录覆盖前提示用户确认。
- -f:强制覆盖目标文件或者目标目录。
- -p:保留文件或者目录的原始属性(如权限、时间戳等)。
(1)、复制文件
1)复制文件
复制文件/root/data_test/test.txt 至 目录/root/下
[root@node01 ~]# cp /root/data_test/test.txt /root/
2)复制文件并重命名
复制文件/root/data_test/test.txt 为 /root/data_test/test01.txt
[root@node01 data_test]# cp /root/data_test/test.txt /root/data_test/test01.txt
(2)、复制目录
1)复制目录
复制目录/root/data_test/ 至 目录/root/data下
[root@node01 data]# cp -R /root/data_test/ /root/data
2)复制目录并重命名
复制目录/root/data_test/ 为 目录/root/data/data_bak
[root@node01 data]# cp -R /root/data_test/ /root/data/data_bak
6、scp
scp命令用于主机之间复制文件或者目录,语法格式如下:
scp [选项] [源文件名称 | 源目录名称] [username@remote_host:directory | username@remote_host:directory/filename]
- -r:递归复制整个目录。
- -P:指定远程主机的 SSH 端口号。
- -p:保留文件或者目录的修改时间、访问时间和权限等属性。
- -C:启用压缩,可以加快传输速度