文件管理命令 | 学习笔记

简介: 快速学习文件管理命令。

开发者学堂课程【Linux文件管理命令:文件管理命令】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/591/detail/8343


文件管理命令

 

内容介绍

一、复制文件和目录

二、练习

三、移动和重命名文件

四、删除


一、复制文件和目录

1)命令

u cp [OPTION].. [-T] SOURCE DEST

1   [root@centos7 data]# ll /etc/fstab

2   -rw-r--r--. 1 root root 595 Sep 19 19:44/etc/fstab

3   [root@centos7 data]# cp/etc/fstab /data/fstab.bak

4   [root@centos7 data]# 17 /etc/fstab/data/fstab.bak

5   -rw-r--r--1 root root 595 Sep24 18:58/data/fstab.bak

6   rw-r--r--.1 root root 595 Sep1919:44/etc/fstab

u cp [OPTION]... SOURCE... DIRECTORY

1   [root@centos7 data]# cp /etc/fstab /etc/profile /root/anaconda-ks.cfg

2   [root@centos7 data]# ls

3   anaconda-ks.cfg fofstab fstab.bak profile

4   [root@centos7 data]# cp-t/data /etc/bashrc /etc/motd

5   [root@centos7 data]# ls

6   anaconda-ks.cfg bashrc fo fstab fstab.bak motd profile

7   [root@centos7 data]# cp /etc/issue /etc/

8   Display all 283 possibilities?(y or n)

u cp [OPTION]... -t DIRECTORY SOURCE...

u cp SRC DEST

2SRC 是文件:

l  如果目标不存在:新建 DEST,并将 SRC 中内容填充至 DEST

l  如果目标存在:

ü  如果 DEST 是 文件:SRC 中的内容覆盖至 DEST (基于安全,建议为 cp 命令使用-i选项)

ü  如果 DEST 是目录:

DEST 下新建与原文件同名的文件,并将 SRC 中内容填充至新文件中

目标源

不存在

存在且为文件

存在且为目录

一个文件

新建 DEST ,并将 SRC 中内容填充至DEST 

SRC 中的内容覆盖至 DEST 

注意数据丢失风险! 建议用-i选项

DEST 下新建与原文件同名的文件, 并将SRC中内容填充至新文件中

多个文件

提示错误

提示错误

在 DEST 下新建与原文件同名的文件, 并将原文件内容复制进新文件中

目录

须使用-r选项

创建指定 DEST 同名录,复制 SRC 目录中所有文件至 DEST 

 

提示错误

在 DEST 下新建与原目录同名的目录, 并将SRC中内容复制至新目录中

 

 

3cp 常用选项

u -i:覆盖前提示 -n 不覆盖,注意两者顺序

u -r-R:递归复制目录及内部的所有内容

u -d:--no-dereference--preserv=links 不复制原文件,只复制链接名

u -b--backup=numbered 目标存在,覆盖前先备份加数字后缀

u -a: 归档/备份(archive),相当于-dR--preserv=all

1   [root@centos7 data]# cp/root/anaconda-ks.cfg f1

2   [root@centos7 data]# ll /root/anaconda-ks.cfg f1

3   -rw------1 root root 1895 Sep 24 19:21 f1

4   -rw------. 1 wang root 1895 Sep 24 18:18/root/anaconda-ks.cfg

5   [root@centos7 data]# cp-a/root/anaconda-ks.cfgf2

6   [root@centos7 data]# ll -a/root/anaconda-ks.cfg f2

7   -rw------. 1 wang root 1895 Sep 24 18:18 f2

8   -rw------. 1 wang root 1895 Sep 24 18:18/root/anaconda-ks.cfo

u -v--verbose 显示详细的复制过程

1   [root@centos7 data]# cp-av /etc /data

u --preserv[=ATTR_LIST]

ü  mode: 权限

ü  ownership: 属主属组

ü  timestamp:

ü  links

ü  xattr

ü  context

ü  All

练习:

1   [root@centos7 data]# ll /etc/shadow

2   -----------1. root root 1339 Sep 21 16:11 /etc/shadow

3   [root@centos7 data]# cp-p/etc/shadow

4   [root@centos7 data]# ll /etc/shadow shadow

5   -----------1. root root 1339 Sep 21 16:11 /etc/shadow

6   -----------1 root root 1339 Sep 21 16:11 shadow

u -u--update 只复制源比目标更新文件活目标不存在的文件

1   [root@centos7 data]# ll f1

2   -rw------- 1 root root 1895 Sep 24 19:21 f1

3   [root@centos7 data]# cp-u f1 f2

4   cp:overwrite 'f2'?y

5   [root@centos7 data]# ll f2

6   -rw----- --. 1 wang root 1895 Sep 24 19:30 f2

7   [root@centos7 data]# ll f1 f2 -rw----

8   -rW----. e.1 mong root 1895 sep 24 19:30 f2

需要注意的是,cp 命令只适合复制普通的文件,无法复制特殊文件(如硬盘文件等)

 

二、练习

1、定义别名命令 baketc,每天将 /etc/ 目录下所有文件,备份到/app独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

1   [root@centos7 data]# alias baketc = ‘cp- av/etc//data/backup ’date+%F

2、创建/app/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限

1   [root@centos7 data]# cp -rp /root/ /data/rootdir

 

三、移动和重命名文件

u mv [OPTION]... [-T] SOURCE DEST

u mV [OPTION]... SOURCE... DIRECTORY

u mv [OPTION]... -t DIRECTORY SOURCE...

常用选项:

i 交互式

-f: 强制

-b: 目标存在,覆盖前先备份

 

改名:[root@centos7 data]# mv f1 f2

移动:[root@centos7 data]# mv f2 /root/

边移动边改名:[root@centos7 data]# mv /root/f2/data/f3

 

四、删除

u rm [OPTION]... FILE...(慎用,尽可能不要执行,本部分仅供学习,需要删除的时候改用 mv 移动文件)

u 常用选项:

-i 交互式

-f  强制删除

-r 递归,rm 不能直接删文件夹,用-r就可以

--no-preserve-root 删除/根目录

u 示例:

rm -rf  /*

1   [root@centos7 data]# rm f4

2   [root@centos7 data]# \rm  f1*

3   [root@centos7 data]# rm -f  f

4   [root@centos7 data]# rm -r  backup2018-09-24/

5   [root@centos7 data]# rm -rf  backup2018-09-24/(删除整个文件夹)

6   [root@centos7 data]# rm -rf  /

7   [root@centos7 data]# rm -rf  / --no-preserve-root

相关文章
|
存储 JSON 监控
可以通过配置Filebeat来将Higress日志持久化到磁盘
【2月更文挑战第10天】可以通过配置Filebeat来将Higress日志持久化到磁盘
377 4
|
API 计算机视觉
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
484 3
|
数据采集 JavaScript 网络安全
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
462 0
为什么PHP爬虫抓取失败?解析cURL常见错误原因
|
缓存 安全 网络协议
HTTP中如何正确使用Via
【10月更文挑战第20天】Via`首部字段记录报文途中每个代理或网关信息,助于诊断问题和避免循环。
jvm配置参数,查看大对象直接分配到老年代
jvm配置参数,查看大对象直接分配到老年代
254 0
|
存储 数据采集 监控
一文详解全栈可观测的实现路径
一文详解全栈可观测的实现路径
1808 110
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
368 3
|
存储 数据挖掘 数据处理
Pandas Excel数据处理指南
在数据处理和分析的过程中,Excel是一个非常常见的工具。然而,当数据量变大,操作复杂度增加时,Excel的效率和功能可能无法满足需求。Pandas是一个强大的Python数据处理库,可以轻松地读取、处理和分析Excel文件中的数据。本指南将介绍如何使用Pandas进行Excel数据处理,并展示一些常见的操作和技巧。