• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
白_胖_子
Linux学习的生活就是这么朴实无华且枯燥
博客园    首页    新随笔    联系   管理    订阅  订阅

Linux文件系统和管理-2文件操作命令(中)

创建空文件和刷新时间 touch

  • touch命令可以用来创建空文件或刷新文件的时间
  • touch 存在的文件刷新时间,不存在的文件创建空文件

生成指定日期的日志文件

[root@C8-1 ~]# date
Wed Jun 17 09:35:43 EDT 2020
[root@C8-1 ~]# touch `date -d "-1 day" +%F_%T`.log
[root@C8-1 ~]# ls
2020-06-16_09:36:55.log  anaconda-ks.cfg  linux.txt  win.txt
[root@C8-1 ~]# touch $(date -d "1 year" +%F_%T).log
[root@C8-1 ~]# ls
2020-06-16_09:36:55.log  2021-06-17_09:37:53.log  anaconda-ks.cfg  linux.txt  win.txt

touch 选项说明

  • -a 仅改变 atime和ctime
  • -m 仅改变 mtime和ctime
  • -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
  • -c 如果文件不存在,则不予创建

复制文件和目录


利用 cp 命令可以实现文件或目录的复制
cp 是英文单词copy的简写

格式

cp [OPTION]... [-T] SOURCE DEST 把源拷到目标去
cp [OPTION]... SOURCE... DIRECTORY 把多个源拷贝到目标文件夹去
cp [OPTION]... -t DIRECTORY SOURCE... 把多个源拷贝到目标文件夹去 和上边的反过来写

单纯去cp源数据,数据的属性可能发生变化,比如时间戳,所有者

  • root命令用的cp命令是cp -i的别命,普通账户用的是原始的cp
[root@C8-1 ~]# type cp
cp is aliased to `cp -i'
  • cp命令默认原始命令是覆盖
  • cp命令默认只拷文件,只有添加-p才能保留属性
  • cp命令默认只能拷文件,要拷文件夹需要加-r递归
  • cp命令默认拷贝软链接文件拷贝的是指向的文件本身,-p保留不住链接属性,-d可以保留链接属性
  • cp命令-a属性是综合属性,即保留了全部属性,相当于备份作用

常用选项

  • -i 如果目标已存在,覆盖前提示
  • -n 不覆盖,注意两者顺序
  • -r, -R 递归复制目录及内部的所有内容
  • -a 归档,相当于-dR --preserv=all
  • -d --no-dereference --preserv=links 不复制原文件,只复制链接名
  • --preserv[=ATTR_LIST]
  • -p 等同--preserv=mode,ownership,timestamp #可以保留属性 权限,所有者,时间戳
  • -v --verbose
  • -f --force
  • -u --update 只复制源比目标更新文件或目标不存在的文件
  • -b 目标存在,覆盖前先备份,形式为 filename~ 只保留最近的一个备份,CentOS7
  • --backup=numbered 目标存在,覆盖前先备份加数字后缀 CentOS8默认值

    1.创建一个618目录,并在目录中创建一些文件
    2.拷贝618目录到618bak目录,因618bak不存在,故自动创建618bak目录
    3.再次拷贝618目录到618bak目录,因618bak目录存在,故拷贝之618bak目录下
    4.第三次拷贝618目录到618bak目录,因618bak目录存在且618bak目录下亦存在618bak目录,故提示是否覆盖。
[root@C8-1 ~]# mkdir 618
[root@C8-1 ~]# cd 618
[root@C8-1 618]# touch {a...d}{1..3}.test
[root@C8-1 618]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 17 10:17 {a...d}1.test
-rw-r--r--. 1 root root 0 Jun 17 10:17 {a...d}2.test
-rw-r--r--. 1 root root 0 Jun 17 10:17 {a...d}3.test
[root@C8-1 618]# cd ~
[root@C8-1 ~]# pwd
/root
[root@C8-1 ~]# cp -a 618 ./618bak
[root@C8-1 ~]# ll
total 12
-rw-r--r--. 1 root root    0 Jun 17 09:36 2020-06-16_09:36:55.log
-rw-r--r--. 1 root root    0 Jun 17 09:37 2021-06-17_09:37:53.log
drwxr-xr-x. 2 root root   69 Jun 17 10:17 618
drwxr-xr-x. 2 root root   69 Jun 17 10:17 618bak
-rw-------. 1 root root 1184 Mar 16 01:56 anaconda-ks.cfg
-rw-r--r--. 1 root root    6 Jun 17 06:22 linux.txt
-rw-r--r--. 1 root root    7 Jun 17 06:21 win.txt
[root@C8-1 ~]# cp -a 618 ./618bak
[root@C8-1 ~]# ls
2020-06-16_09:36:55.log  2021-06-17_09:37:53.log  618  618bak  anaconda-ks.cfg  linux.txt  win.txt
[root@C8-1 ~]# ls 618bak/
618  {a...d}1.test  {a...d}2.test  {a...d}3.test
[root@C8-1 ~]# cp -a 618 ./618bak
cp: overwrite './618bak/618/{a...d}1.test'? y
cp: overwrite './618bak/618/{a...d}2.test'? y
cp: overwrite './618bak/618/{a...d}3.test'? y
[root@C8-1 ~]# ls 618bak/
618  {a...d}1.test  {a...d}2.test  {a...d}3.test

常用备份命令

在备份文件后自动添加时间戳后缀 __date +%F_%T

[root@C8-1 ~]# cp -a 618 ./618bak/618bak_`date +%F_%T`
[root@C8-1 ~]# cp -a 618 ./618bak/618bak_`date +%F_%T`
[root@C8-1 ~]# cp -a 618 ./618bak/618bak_`date +%F_%T`
[root@C8-1 ~]# cp -a 618 ./618bak/618bak_`date +%F_%T`
[root@C8-1 ~]# ll 618bak/
total 0
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618bak_
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618bak_2020-06-17_10:46:14
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618bak_2020-06-17_10:46:17
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618bak_2020-06-17_10:46:19
drwxr-xr-x. 2 root root 69 Jun 17 10:17 618bak_2020-06-17_10:46:20
* * * 胖并快乐着的死肥宅 * * *
posted @ 2020-06-19 00:06  白_胖_子  阅读(151)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3