Linux2_文件管理命令2

文件管理2

复制命令

# 命令
cp:copy
cp [option]... source dest
cp [选项] 源文件... 目标路径

# 默认,只能拷贝文件

## 选项
-t:目标路径 源文件
-p:保持文件属性
-r:递归复制,复制目录及目录下的所有文件
-a:=rp 相当于-rp,既可以拷贝目录,又可以保持文件属性
-i:提示=cp
-v:显示,拷贝的过程

## 用法
cp /work/oldgirl/123.txt /work2/

## 复制并改名
[root@localhost ~]# cp /work3/123.txt /work4/aaaa
aaaa是否存在:
            - 存在
                 1)存在,并且aaaa是个目录:将123.txt放到/work4/aaaa目录下,不改名
                 2)存在,并且aaaa是个普通文件:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
                
                  举例:
                  ## 提示:
                  [root@localhost ~]# cp /work3/123.txt /work4/aaaa
                  cp: overwrite ‘/work4/aaaa’?

            - 不存在:复制到/work4下,并且改名为aaaa
           
## 报错  
[root@localhost ~]# cp /work3 /work4
cp: omitting directory ‘/work3’


# -p 保持文件属性
举例:
[root@localhost ~]# cp -p /work3/123.txt /work4
# 查看当前拷贝过来的文件属性
[root@localhost ~]# ll /work4/123.txt 
-rw-r--r--. 1 root root 0 Mar 23 10:48 /work4/123.txt
# 查看源文件属性
[root@localhost ~]# ll /work3/123.txt 
-rw-r--r--. 1 root root 0 Mar 23 10:48 /work3/123.txt


# -r 递归拷贝
举例:
[root@localhost ~]# cp -r /work3 /work4
[root@localhost ~]# ll /work4
total 0
-rw-r--r--.  1 root root   0 Mar 23 10:48 123.txt
-rw-r--r--.  1 root root   0 Mar 23 18:22 aaaa
drwxr-xr-x. 12 root root 112 Mar 23 18:36 work3


# -a 拷贝目录,保持目录属性
举例:
[root@localhost ~]# cp -a /work5 /work6
# 查看源目录属性
[root@localhost ~]# ll /work5
total 0
drwxr-xr-x. 2 root root 6 Mar 21 17:23 oldboy
drwxr-xr-x. 2 root root 6 Mar 21 17:23 oldgirl
# 查看当前拷贝过来的目录属性
[root@localhost ~]# ll /work6/work5
total 0
drwxr-xr-x. 2 root root 6 Mar 21 17:23 oldboy
drwxr-xr-x. 2 root root 6 Mar 21 17:23 oldgirl


# -i 提示
[root@localhost ~]# cp /work3/123.txt /work4/aaaa
                  cp: overwrite ‘/work4/aaaa’?
                  ## 避免提示有两种方法
                  1)使用转义符:让转义符后面的内容,做它自己
                  [root@localhost ~]# \cp /work3/123.txt /work4/aaaa
                  
                  2)使用命令的绝对路径
                  [root@localhost ~]# /bin/cp /work3/123.txt /work4/aaaa



# -v 显示拷贝的过程
举例:
[root@localhost ~]# cp -a -v /work3 /work6
‘/work3’ -> ‘/work6/work3’
‘/work3/1’ -> ‘/work6/work3/1’
‘/work3/2’ -> ‘/work6/work3/2’
‘/work3/3’ -> ‘/work6/work3/3’
‘/work3/4’ -> ‘/work6/work3/4’
‘/work3/5’ -> ‘/work6/work3/5’
‘/work3/6’ -> ‘/work6/work3/6’
‘/work3/7’ -> ‘/work6/work3/7’
‘/work3/8’ -> ‘/work6/work3/8’
‘/work3/9’ -> ‘/work6/work3/9’
‘/work3/10’ -> ‘/work6/work3/10’
‘/work3/123.txt’ -> ‘/work6/work3/123.txt’


# 注意:当拷贝文件有多个源文件的情况下,最后一个必须是目录,不能是普通文件,也不能不存在
举例:
cp a b c d e f
这里的f必须是目录

删除命令

# 命令:
rm:remove

## 语法
rm   [OPTION]...    FILE...
rm     选项...       文件...

## 选项
-i:提示
-r:递归删除
-f:force 强制
-d:只能删除空目录(用的不多)

## 举例
[root@localhost ~]# rm /work3/123.txt 
rm: remove regular empty file ‘/work3/123.txt’? 


# -r 递归删除(删除目录包括文件)
举例:
[root@localhost ~]# rm -r /work6/work3
rm: descend into directory ‘/work6/work3’? y
rm: remove directory ‘/work6/work3/1’? y
rm: remove directory ‘/work6/work3/2’? y
rm: remove directory ‘/work6/work3/3’? y
rm: remove directory ‘/work6/work3/4’? y
rm: remove directory ‘/work6/work3/5’? y


# -f强制删除(小心使用)
[root@localhost ~]# rm -fr ./*
[root@localhost ~]# rm -fr /*
区别两者:
1)删除当前目录
2)删除根目录


## 报错
[root@localhost ~]# rm /work6/work3
rm: cannot remove ‘/work6/work3’: Is a directory


rm -r 删除目录包括目录下的文件
rm 删除文件

普通文件查看命令

# 命令:
cat   普通文件查看命令=只能查看文件内容

## 语法
cat    [OPTION]...    [FILE]...
cat     选项...        普通文件...


## 选项
-n:number 打印行号,显示行号
-E:end ,查看文件每一行的结尾,以$符表示最后
-T:Tab,查看文件中每一行内容是否含有制表符。以^I表示一个制表符
-A:既显示制表符,又显示文件的结尾

## 报错
[root@localhost ~]# cat /work4
cat: /work4: Is a directory
/work4 是一个目录

举例:
[root@localhost ~]# echo 1 >/work6/1.txt
[root@localhost ~]# echo 2 >/work6/2.txt
[root@localhost ~]# echo 3 >/work6/3.txt
[root@localhost ~]# cat /work6/1.txt /work6/2.txt /work6/3.txt 
1
2
3


# -n 打印行号
[root@localhost ~]# cat -n /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
    11	games:x:12:100:games:/usr/games:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13	nobody:x:99:99:Nobody:/:/sbin/nologin
    14	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15	dbus:x:81:81:System message bus:/:/sbin/nologin
    16	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    18	postfix:x:89:89::/var/spool/postfix:/sbin/nologin


# -E 查看文件结尾
举例:
[root@localhost ~]# cat -E 1.txt
1 $
2 $
3 $
4 7 $
5 2 0$
6 9$
7$


# -T 查看文件中的制表符
[root@localhost ~]# cat -T 1.txt
1^I^I
2
^I3
4^I^I7
5^I2^I^I^I0
6 9
7

# -A 既查看制表符,又查看文件结尾
[root@localhost ~]# cat -A 1.txt
1^I^I $
2 $
^I3 $
4^I^I7 $
5^I2^I^I^I0$
6 9$
7$
## 高难度用法(在文件不存在的情况下,创建文件并写入内容)
# 1.直接vi一个不存在的文件
[root@localhost ~]# vi /work6/bbb.txt
[root@localhost ~]# ll /work6
total 16
-rw-r--r--. 1 root root  2 Mar 23 19:24 1.txt
-rw-r--r--. 1 root root  2 Mar 23 19:24 2.txt
-rw-r--r--. 1 root root  2 Mar 23 19:24 3.txt
-rw-r--r--. 1 root root 16 Mar 23 19:33 bbb.txt
drwxr-xr-x. 8 root root 76 Mar 23 19:09 work3
drwxr-xr-x. 4 root root 35 Mar 23 11:18 work5
[root@localhost ~]# cat /work6/bbb.txt
www.sina.com

# 2.echo内容重定向到一个文件中
[root@localhost ~]# echo www.sina.com > /work6/ccc.txt
[root@localhost ~]# cat /work6/ccc.txt
www.sina.com

# 3.使用cat创建文件并写入内容
[root@localhost ~]# cat >>/work6/777.txt <<EOF
> www.sina.com
> www.baidu.com
> EOF
[root@localhost ~]# cat /work6/777.txt 
www.sina.com
www.baidu.com

EOF:End Of 以....结尾,不是固定用法,规范用法
EOF原则上可以改为自己想定义的任何名字,但是一般不更改



## 注意:cat查看文件时,会将文件所有内容全部加载到内存里
所以如果需要查看的文件比较大会占用大的空间,就会停掉一些进程。

普通文件查看命令 扩展

  • 与cat的区别
# 命令:
more

## 语法
more 文件名

按回车,一行一行向下显示
按空格,一页一页向下显示

## 选项:
Ctrl + b:向上查看
Ctrl + f:向下查看
# 命令
less

## 语法
less 文件名

## 选项:
Ctrl + b:向上查看
Ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示

输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
Shift + n 查找上一个关键字

# 命令
head

## 语法
head 文件名
(默认显示一个文件的前10行内容)

## 选项
-n:指定查看文件开头的前N行,n可以省略
head -n 4
head -4

举例:
[root@localhost ~]# head -n 3 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#

[root@localhost ~]# head -5 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
# 命令
tail

## 语法
tail 文件名
(默认显示一个文件的后10行内容)
[root@localhost ~]# tail /etc/services
3gpp-cbsp       48049/tcp               # 3GPP Cell Broadcast Service Protocol
isnetserv       48128/tcp               # Image Systems Network Services
isnetserv       48128/udp               # Image Systems Network Services
blp5            48129/tcp               # Bloomberg locator
blp5            48129/udp               # Bloomberg locator
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker


## 选项
-n:指定查看文件末尾的后N行,n可以省略
-f:follow,跟踪,动态跟踪一个文件的末尾

举例:
[root@localhost ~]# tail -n 4 /etc/services
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker

[root@localhost ~]# tail -4 /etc/services
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker

[root@localhost ~]# tail -f 777.txt
www.sina.com
www.baidu.com
123
456

思维导图

posted @   悠悠哉55  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示