Linux文件拷贝(6)
本篇介绍文件拷贝操作,主要讲两个命令:
命令 | 对应英文 | 作用 |
---|---|---|
tree[目录名] | tree | 以树状图列出文件目录结构 |
cp 源文件 目标文件 | copy | 复制文件或者目录 |
tree
tree命令可以将一个目录结构以树状图的形式展示出来,便于我们了解目录层级关系。在进行文件操作前,这个命令有时很有用。
在这之前,需要注意的是,你的Linux环境可能没有这个命令,比如我的centos服务器环境就没有,这时你可以自己安装这个命令,输入以下命令:
yum install tree
直接输入tree命令可以查看当前所在目录的层级关系:
//在a目录下输入
tree //结果
.
└── b
└── c
└── .txt
也可以指定目录名,比如回到a目录上层,再输入命令:
tree a //结果
a
└── b
└── c
└── .txt
注意两次展示结果的区别,一个是从 . 开始,表当前目录,一个是从 a 开始,表a目录下。
有时候一个文件夹里内容太多,如果把全部层级展示出来,结构可能太长了,这时我们只展示目录就好,需要用到选项-d
,使用它就可以只展示目录。
还是拿上面的a目录演示,我在b目录里再建一个文件:
touch a/b/test.txt
//这种写法是可以的
再看一下a目录结构:
tree a //结果
a
└── b
├── c
│ └── .txt
└── test.txt
现在使用 -d 选项:
tree -d a //结果
a
└── b
└── c
└── .txt
此时发现,b目录里的文件没显示了,但是c目录里还显示了。关于这个,也可能是我的环境原因,有些命令包括之前已经提到的命令,在不同的Linux环境下可能表现有些许差异(我自己觉得),但功能都一样,自己多试试吧。
cp
拷贝命令也是很简单,它的结构是:
cp 源文件路径 目标文件路径
比如我的根目录下,有一个readme.txt文件,我想将它复制到home目录下,并重命名为test.txt。如果当前目录就是根目录,那么输入:
cp readme.txt ~/test.txt
//~表示home目录
此时在home目录下,就有了test.txt文件。这时,如果你不想重命名,你可能这么写:
cp readme.txt ~/readme.txt
但其实,我们可以更简单点:
cp readme.txt ~
这样也是可以的。所以记住了,如果不想重命名复制的文件,直接写目标文件的路径就好。
cp命令的几个选项
cp命令的选项也有好几个,这里主要说三个:
命令 | 含义 |
---|---|
-f | 对于已经存在的目标文件直接覆盖,不会提示 |
-i | 覆盖文件前提示 |
-r | 拷贝一个目录,目录下的所有文件及目录都拷贝 |
看含义就知道什么意思了,先看 -f 选项,如果我们不加这个选项,然后复制一个文件名已经存在的文件:
// home目录下已经有readme.txt这个文件了,然后再复制一份根目录的readme.txt cp /readme.txt .
结果:
cp: overwrite ‘./readme.txt’?
显然我们需要根据提示选择是否需要覆盖。那如果我们不需要提示的话,就可以使用 -f 这个选项了:
cp -f /readme.txt .
结果:
cp: overwrite ‘./readme.txt’?
what? 不是不会提示了吗,怎么还有提示?这个选项没效果?刚开始我也怀疑是我的环境原因,后来上网查询才了解到,默认cp命令是有别名(alias cp='cp -i')
的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件。此时如果想看到效果,可以临时取消cp的alias:
unalias cp
再输入上述复制命令就不会有提示了。不过显然在平时使用过程中,我们不建议使用-f选项,连cp默认都是使用了 -i 选项,这样做的好处是防止误操作啊,所有我们应该尽量加上 -i 选项,防止没必要的损失。
如果我们想拷贝一个目录,那么必须加上 -r 这个选项,我在根目录下新建了一个test目录:
tree test //结果
test
└── a
├── .txt
└── b
现在就在当前目录拷贝一份,并重命名为test1:
cp test ./test1 //结果
cp: omitting directory ‘test’
我们再加上 -f 选项:
cp -r test ./test1
这时没有提示了,没有提示就是最好的提示,可以看到当前目录下多了一个test1目录。
Linux文件拷贝(6)的更多相关文章
- Linux文件拷贝脚本
在工作中,我们经常遇到要从Linux服务器拷贝日志至本地或者定期清理日志的需求,在服务器上,大型系统的日志是按模块存储的,这就导致日志的文件目录较多且层级不统一.我们从众多的目录手工筛选要下载或者删除 ...
- Linux系统下远程文件拷贝scp命令
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- Linux下不同机器之间的文件拷贝
通过 scp 命令实现不同机器之间的文件拷贝. (1)本机考到目标机器:scp 本机文件 目的地: 如:scp /home/odp-web.war root@192.168.6.137:/usr/ ...
- 将文件从一台linux机器拷贝到多台的方法
首先你所操作的各台linux机器间必须设置了ssh免密码登录,具体方法可上网查看.将文件从一台linux机器拷贝到多台分为以下几个步骤: 第一步:创建脚本文件remotecopy.sh #!/bin/ ...
- 使用pscp命令在Windows与linux之间拷贝文件
在Linux环境下做开发时,我们可能会在windows下远程控制Linux系统,本文介绍如何使用putty的pscp.exe在Windows和 Linux(本文使用fedora)之间copy文件. 工 ...
- 转:window与linux互相拷贝文件
window与linux互相拷贝文件 借助 PSCP 命令可以实现文件的互拷: 1.下载pscp.exe 文件 (我的资源文件中有) 2.如果想在所有目录可以执行,请更改环境变量. w ...
- linux 上拷贝文件到windows 上 文件出现锁的文件
要在linux上拷贝出文件到windows上,那么文件必须是777的最高权限. chmod wb_redis -R
- linux或者windows下的文件拷贝
# 上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import shutil import tarfile base_dir ...
- [C++]Linux之文件拷贝在系统调用和C库函数下的效率比较
声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 题目: 1. 分别利用文件的系统调用r ...
随机推荐
- CMDB架构需求实现
CMDB资产管理部分实现 需求 1.存储所有IT资产信息 2.数据可手动添加 3.硬件信息可自动收集 4.硬件信息可自动变更 5.可对其他系统灵活开放API 6.API接口安全认证 立业之本:定义表结 ...
- mfc static控件 视频播放 闪屏问题 解决方案
方案1: 我昨天刚在csdn上解决了这个问题,不是双缓冲和WS_CLIPCHILDREN还有背景擦出什么的问题,就是在你重画的时候要去掉这些控件(按钮什么的)区域, 闪屏是因为窗口大小发生改变时,由于 ...
- 【java工具类】生成Zip压缩包
多文件生成压缩包,返回压缩包生成位置的路径. FileUtil.java /** * 文件打压缩包 * @param files * @param Name * @return * @throws E ...
- JPA学习(六、JPA_JPQL)
框架学习之JPA(六) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...
- LCA模板 ( 最近公共祖先 )
LCA 有几种经典的求取方法.这里只给出模板,至于原理我完全不懂. 1.RMQ转LCA.复杂度O(n+nlog2n+m) 大致就是 DFS求出欧拉序 => 对欧拉序做ST表 => LCA( ...
- Applied Spatiotemporal Data Mining应用时空数据挖掘
Course descriptionWith the continuing advances of geographic information science and geospatialtechn ...
- https: could not reliably determine the server's fully qualified domain name, using localhost.localdomain.
1. 用记事本打开 将里面的 #ServerName localhost:80 注释去掉即可. 再执行 然后可以通过浏览器访问 http://localhost:80 ,如果页面显示 “It work ...
- [CSP-S模拟测试]:数对(线段树优化DP)
题目传送门(内部题96) 输入格式 第一行一个整数$n$,接下来$n$行每行三个整数$a_i,b_i,w_i$. 输出格式 一行一个整数表示最大权值和. 样例 样例输入: 54 4 12 3 31 5 ...
- c++结构体、共用体和枚举
结构体类型 c++中的结构体成员既可以是数据,也可以是函数 c语言中定义结构体变量必须加struct(这也是很多时候和typedef),但是在c++里面,可以不加 结构体和类的不同在于,结构体中的变量 ...
- Long类源码浅析
1.Long类和Integer相类似,都是基本类型的包装类,类中的方法大部分都是类似的: 关于Integer类的浅析可以参看:Integer类源码浅析 2.这里主要介绍一下LongCache类,该缓存 ...