Linux部分文件管理类命令

1、创建空文件和刷新时间

 touch命令可以用来创建空文件或刷新文件的时间

touch [OPTION]... FILE...

 选项:

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

 示例:

[root@CentOS8 ~]# ll /etc/issue
-rw-r--r--. 1 root root 23 Jan  2  2020 /etc/issue
[root@CentOS8 ~]# touch /etc/issue
[root@CentOS8 ~]# ll /etc/issue
-rw-r--r--. 1 root root 23 Jan 21 19:39 /etc/issue
[root@CentOS8 ~]# stat /etc/issue
  File: /etc/issue
  Size: 23        	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 134341451   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2021-01-21 19:39:26.091042069 +0800
Modify: 2021-01-21 19:39:26.091042069 +0800
Change: 2021-01-21 19:39:26.091042069 +0800
 Birth: -
 
[root@CentOS8 data]# touch `date -d "-1 day" +%F_%T`.log
[root@CentOS8 data]# ls
2021-01-20_19:43:40.log
[root@CentOS8 data]# touch $(date -d "-1 year" +%F_%T).log
[root@CentOS8 data]# ls
2020-01-21_19:44:17.log  2021-01-20_19:43:40.log

 

2、复制文件和目录

 利用 cp(copy)命令可以实现文件或目录的复制

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

 选项:

-i	如果目标已存在,覆盖前提示是否覆盖。
-n	不覆盖,注意两者顺序。
-r,-R	递归复制目录及内部的所有内容
-a	归档,相当于-dR --preserv=all,常用于备份功能。
-d --no-dereference --preserv=links	不复制原文件,只复制链接名。
--preserv[ATTR_LIST]
	mode:权限
	ownership:属主属组
	timestamp:	
	links
	xattr
	context
	all
-p	等同--preserv=mode,ownership,timestamp
-v --verbose	显示复制过程
-f --force		如果目标存在,并且不能打开,删除,重新覆盖。
-u	--update	只复制源比目标更新文件或目标不存在的文件
-b	目标存在,覆盖前先备份,默认形式为filename~,只保留最近的一个备份。
--backup=numbered	目标存在,覆盖前先备份加数字后缀,形式为filename.~#~,可以保留多个版本。
[root@CentOS8 ~]# cp ~ou/issue2 /data/issue_ou.bak
[root@CentOS8 ~]# ll ~ou/issue2 /data/issue_ou.bak
-rw-r--r--. 1 root root 0 Jan 21 21:30 /data/issue_ou.bak
-rw-rw-rw-. 1 ou   ou   0 Jan 21 21:12 /home/ou/issue2
[root@CentOS8 ~]# cp -p ~ou/issue2 /data/issue_ou.bak2
[root@CentOS8 ~]# ll /data/
total 0
-rw-r--r--. 1 root root 0 Jan 21 19:44 2020-01-21_19:44:17.log
-rw-r--r--. 1 root root 0 Jan 21 19:43 2021-01-20_19:43:40.log
-rw-r--r--. 1 root root 0 Jan 21 21:30 issue_ou.bak
-rw-rw-rw-. 1 ou   ou   0 Jan 21 21:12 issue_ou.bak2
[root@CentOS8 ~]# cp  /etc/sysconfig/ /data/
cp: -r not specified; omitting directory ‘/etc/sysconfig/‘
[root@CentOS8 ~]# cp -r /etc/sysconfig/ /data/
[root@CentOS8 ~]# ll /data/
total 4
-rw-r--r--. 1 root root    0 Jan 21 19:44 2020-01-21_19:44:17.log
-rw-r--r--. 1 root root    0 Jan 21 19:43 2021-01-20_19:43:40.log
-rw-r--r--. 1 root root    0 Jan 21 21:30 issue_ou.bak
-rw-rw-rw-. 1 ou   ou      0 Jan 21 21:12 issue_ou.bak2
drwxr-xr-x. 7 root root 4096 Jan 21 21:32 sysconfig

[root@CentOS8 ~]# cp -b /etc/fstab /data/issue
cp: overwrite ‘/data/issue‘? y
[root@CentOS8 ~]# ll /data/
total 12
-rw-r--r--. 1 root root    0 Jan 21 19:44 2020-01-21_19:44:17.log
-rw-r--r--. 1 root root    0 Jan 21 19:43 2021-01-20_19:43:40.log
-rw-r--r--. 1 root root  709 Jan 21 22:11 issue
-rw-r--r--. 1 root root  709 Jan 21 22:11 issue~
-rw-r--r--. 1 root root    0 Jan 21 21:30 issue_ou.bak
-rw-rw-rw-. 1 ou   ou      0 Jan 21 21:12 issue_ou.bak2
drwxr-xr-x. 7 root root 4096 Jan 21 21:32 sysconfig
[root@CentOS8 ~]# cp --backup=numbered /etc/fstab /data/issue
cp: overwrite ‘/data/issue‘? y
[root@CentOS8 ~]# cp --backup=numbered /etc/fstab /data/issue
cp: overwrite ‘/data/issue‘? y
[root@CentOS8 ~]# ll /data/
total 20
-rw-r--r--. 1 root root    0 Jan 21 19:44 2020-01-21_19:44:17.log
-rw-r--r--. 1 root root    0 Jan 21 19:43 2021-01-20_19:43:40.log
-rw-r--r--. 1 root root  709 Jan 21 22:12 issue
-rw-r--r--. 1 root root  709 Jan 21 22:11 issue~
-rw-r--r--. 1 root root  709 Jan 21 22:11 issue.~1~
-rw-r--r--. 1 root root  709 Jan 21 22:12 issue.~2~
-rw-r--r--. 1 root root    0 Jan 21 21:30 issue_ou.bak
-rw-rw-rw-. 1 ou   ou      0 Jan 21 21:12 issue_ou.bak2
drwxr-xr-x. 7 root root 4096 Jan 21 21:32 sysconfig

 

3、移动和重命名文件

 mv命令可以实现文件或目录的移动和改名

 同一分区移动数据,速度很快:数据的位置没有变化。

 不同分区移动数据,速度相对慢:数据位置发生了变化。

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

 选项:

-i	交互式
-f	强制
-b	目标存在,覆盖前先备份

 利用rename可以批量修改文件名

rename [options] <expression> <replacement> <file>...

  

4、删除文件

 使用 rm 命令可以删除文件

 注意:此命令非常危险,慎用,建议用 mv 代替 rm

rm [OPTION]... FILE...

 选项:

-i	交互式
-f	强制删除
-r	递归
--no-preserve-root	删除/

 删根示例:

[root@CentOS8 ~]# rm -rf /		不允许执行
rm: it is dangerous to operate recursively on ‘/‘
rm: use --no-preserve-root to override this failsafe

[root@CentOS8 ~]# rm -rf /*		允许执行,危险行为!!

 删除特殊文件

#将名为 “/data -f” 的文件删除
[root@CentOS8 data]# rm -f -f	#此方式错误
[root@CentOS8 data]# rm -- -f	
[root@CentOS8 data]# rm ./-f
[root@CentOS8 data]# rm /data/-f

[root@CentOS8 data]# touch ‘~‘
[root@CentOS8 data]# ls
‘~‘   2020-01-21_19:44:17.log   2021-01-20_19:43:40.log   backup2021-01-21   -f   issue   issue~   issue.~1~   issue.~2~   issue_ou.bak   issue_ou.bak2   rootdir   sysconfig
[root@CentOS8 data]# rm -f ~
rm: cannot remove ‘/root‘: Is a directory
[root@CentOS8 data]# rm -- ~
rm: cannot remove ‘/root‘: Is a directory
[root@CentOS8 data]# rm -f ./~
[root@CentOS8 data]# ls
2020-01-21_19:44:17.log  2021-01-20_19:43:40.log  backup2021-01-21  -f  issue  issue~  issue.~1~  issue.~2~  issue_ou.bak  issue_ou.bak2  rootdir  sysconfig

 rm虽然删除了文件,但被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件。

 shred格式

shred [OPTION]... FILE...

 选项:

-z	最后一次覆盖添加0,以隐藏覆盖操作。
-v	能够显示操作进度
-u	覆盖后截断并删除文件
-n #	指定覆盖文件内容的次数(默认值是3次)

 示例:

[root@CentOS8 ~]# shred -zvun 5 passwords.txt 
shred: passwords.txt: removing
shred: passwords.txt: renamed to 0000000000000
shred: 0000000000000: renamed to 000000000000
shred: 000000000000: renamed to 00000000000
shred: 00000000000: renamed to 0000000000
shred: 0000000000: renamed to 000000000
shred: 000000000: renamed to 00000000
shred: 00000000: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: passwords.txt: removed
[root@CentOS8 ~]# ls passwords.txt
ls: cannot access ‘passwords.txt‘: No such file or directory

  

5、目录操作

5.1、显示目录树tree

 选项:

-d	只显示目录
-L level	指定显示的层级数目
-P pattern	只显示由指定wild-card pattern匹配到的路径

5.2、创建目录mkdir

 选项:

-p	存在于不报错,且可自动创建所需的各目录
-v	显示详细信息
-m MODE	创建目录时直接指定权限

5.3、删除空目录rmdir

 选项:

-p	递归删除父空目录
-v	显示详细信息

 注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r命令,递归删除目录树。

 

Linux部分文件管理类命令

上一篇:⑦linux基础命令 mv


下一篇:Linux系统扩容根目录磁盘空间的操作方法