Linux | 像Windows一样,复制移动重命名等操作

撰文编辑:LogicPanda | 图片:来自截图

欢迎朋友圈各种姿势的分享

如需转载,请后台联系授权

前言

为了方便和提高效率,小编这几天更换了演示环境。

现在的演示环境为:

操作系统:VMware14+Ubuntu Server16.04LTS

SSH工具:Xshell+Xmanager+Xftp

截图工具:FSCapture8.9

- 正文 -

-01-

补充前文目录操作的内容

小编在上一篇文章中讲到Linux下的目录操作,一共讲了三个命令,分别是cd、ls、和pwd。但是这里有个问题,既然目录就是文件夹,那么,怎样新建或者删除文件夹,也就是新建或删除一个目录呢?

这就是今天的第一个内容创建和删除目录:mkdir和rmdir

用Xshell登录到Ubuntu,直接跳到家目录,在这里使用ls可以看到此目录下是空的。

首先我们看一下如何使用这两个命令:

我们可以看到多出来了一个目录。然后又没有了。

就是这么简单,对于初学者来说,这就足够了。

-02-

如何复制文件和目录

Linux复制文件和目录使用的命令是cp,即copy的缩写。

为了演示cp的用法,我们在这里创建一个新的文件。给它命名为demo。

然后使用cp命令,从这里就可以看出Linux和Windows的区别了,我们使用Windows的时候,是怎样?右键—复制—粘贴。

这里呢?cp filename filenewname

diff命令是一个用来比较两个文件是否相同的命令,因为没有任何结果打印到屏幕上,所以两个文件是相同的。然后我们在看两个文件创建的时间,一分钟之内。

那么这里再提一个问题,如果filename和filenewname如果相同会怎样呢?会提示你两个文件是相同的。

那么我们知道如何复制文件了,那么如何复制目录呢?

首先,这里试图创建一个和文件demo同名的目录,但是报错了?

这说明什么,在同一个目录下,不能包文件和目录不能重名。

然后创建了Demo目录,如果直接使用cp,会提示这是一个目录,这说明,cp不能直接对目录使用。

接下来给它加上了一个-r选项,复制成功。

那么如果想把demo文件复制到Demo目录下呢?

这个时候可以直接使用cp,就可以复制到demo目录下了。

使用man,可以查看cp的用法。这里列举几个常用的。

-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

-03-

mv | 移动,重名

移动文件和目录,使用的命令是mv,也就是move的缩写。

关于mv,有一个特殊之处在于,它除了移动文件或者目录,还负责给文件或者目录重命名。

此时demo1变成了demodemo

那么如何移动目录以及给目录重命名呢?

这个时候mv的用法如下。

这里列举几条常用选项。

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

-04-

删除不需要的东西 | rm

删除文件或目录,使用的命令是rm,即remove的缩写。移除不需要的东西。

下面我们来试试移除目录。

直接使用rm移除目录的话,会提示这是一个目录,不允许删除,可是当我们使用rmdir的时候呢,发现空的目录可以直接删除,但是非空的目录会有提示。

这就需要使用rm 的-r选项,删除一个非空的目录。

这里再列举几个常用的选项。

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

按:删除有风险,rm需谨慎。

-05-

总结

今天讲述了5个常用的Linux命令。

mkdir、rmdir、cp、mv、rm

分别完成与Window对应的功能

创建目录(新建文件夹),删除目录(删除文件夹),复制、移动、粘贴、删除等。

-06-

问答

1、

问:如果想要批量管理怎么办?

答:使用这则表达式,或者把文件名一个一个打上去。关于正则表达式后边会说。

2、

问:你前言说的那些个东西是什么?

答:请看下一模块,题外话。

3、

问:-f卵用?

答:有些文件或者目录,有保护或者比较重要系统会提示,这个时候如果你心意已决,可以使用-f让提示信息滚蛋。

4、

问:删除的文件怎么找回?

答:找不回来啦,所以养成爱备份的好习惯。

5、

问:如果复制或移动的目录有同名文件怎么办?

答:会覆盖掉,所以复制和移动也要谨慎啊。

-07-

题外话 | 搭建Linux学习环境

简单说一说我现在用的这个东西。

1、下载VMware14,关于这个东西,有问题可以私戳我。

2、然后从官网下载一个Ubunt Server 16.04LTS

3、安装的时候按照提示走,选择安装模式的时候,选择第二项,会检测出是Ubuntu Server 16.04LTS,然后就可以使用简易安装了,so_easy

4、关于Xshell是这个样子,这样的ssh远程登录软件还有很多。

原文发布于微信公众号 - 逻辑熊猫带你玩Python(LogicPanda)

原文发表时间:2018-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

Linux软件包管理(四) 原

包全名:操作的包是没有安装的软件包时, 使用包全名。而且要注意路径      安装 升级 包名:操作已经安装的软件包时,使用包名。 是搜索/var/lib/r...

14820
来自专栏蓝天

通用的进程监控重拉起bash脚本process_monitor.sh

9510
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(十四) ——Redis RDB文件创建、载入与自动保存原理

《Redis设计与实现》读书笔记(十四) ——Redis RDB文件创建、载入与自动保存原理 (原创内容,转载请注明来源,谢谢) 一、概述 r...

34860
来自专栏咸鱼不闲

常用的dos命令

前言: 95、98、2000、2003、XP、Vista、Windows7、Window8、Window10是图形界面,在这之前是dos界面,现在仍然保持着这个...

13930
来自专栏拂晓风起

cocos2d-js 3.0 rc0 编译release报错 value for keystore is not valid. it must resolve to a single path

12320
来自专栏杂烩

Mongodb linux下安装 原

#对mongo实例来说,每个host允许链接的最大链接数,这些链接空闲时会放入池中,如果链接被耗尽,任何请求链接的操作会被阻塞等待链接可用,推荐配置10

24540
来自专栏Python小屋

Python操作Excel文件中多WorkSheet模拟数据库内连接查询

严格意义上来讲,是可以把Excel文件看作数据库的,C#通过OLEDB.net就可以使用SQL语句操作Excel文件中的数据。 本文代码使用Python扩展库o...

36240
来自专栏令仔很忙

令仔学Redis(一)----浅析Redis存储数据时格式的设计

之前接触的一个业务,数据量的话现在在数据库中存了有将近400W的数据,在搜索的时候得到的这些数据会放入达到异步队列中,然后单独开一个线程来进行双写,写缓存,然...

14410
来自专栏Micro_awake web

HTTP方法之GET与POST对比

超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信。最常用的是GET与POST   1.GET方法:     查询字符串(键/值对)是在GET...

21660
来自专栏逸鹏说道

6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置

网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis D...

45370

扫码关注云+社区

领取腾讯云代金券