命令:文件管理之:创建/复制/移动/删除

一:文件管理之:创建/复制/移动/删除

1.1 创建文件: touch

touch file1.txt  # 创建file1.txt文件,无则创建,有则修改时间,创建出的是普通文本文件,与后缀名无关。可使用vim a.txt 编辑里面的内容

touch /home/file10.txt  # 用绝对路径
例:
[root@local-work ~]# touch /home/file10.txt
[root@local-work ~]# ls /home
file10.txt

touch file{1..20}  # 快速创建多个file1..文件
touch {1..9}{a..c}.txt #快速创建1a,2a...1b,2b,,3a,3b,,等多个文件夹

修改文件时间:
touch Ego{n,N}.txt    #等价touch Egon.txt EgoN.txt

例:touch -t 2011111111 2018.rmvb 

    
了解文件的三个时间参数:https://www.cnblogs.com/linhaifeng/articles/13324247.html

1.2 创建目录:mkdir

mkdir dir1 # 在当前文件下创建一个dir1新目录

mkdir {dir1,dir3} # 在当前目录下创建dir1,dir3目录,这个并不是快速创建3个

mkdir /home/dir1 /home/dir2  # 可在其他文件夹下按指定/文件夹创建目录,/home文件夹下创建dir1 dir2目录

mkdir /home/{dir4,dir5} # 等同于mkdir /home/dir4 /home/dir5

mkdir -v /home/{dir6,dir7}  
	mkdir: 已创建目录 “/home/dir6”
	mkdir: 已创建目录 “/home/dir7”    # -v交互模式
	
mkdir -p /home/dir8/111/222 #  -p递归创建目录和子文件夹以及子文件下的内容	

1.3 复制cp

cp 源路径 目标路径
cp -v 源文件 目标文件  # 解释正在做什么
cp -r 源路径 目标路径   # 将源文件夹和里面的内容拷贝到目标文件夹
cp -a 源文件夹 目标文件夹 # 在root模式下,将源文件夹里面的所有数组原封不动的拷贝到目标文件夹
cp -f 源文件 目标文件 # 当用户对目标文件夹没有写和执行权限时,-f会将目标文件夹删除后在将源文件夹拷贝到目标文件夹里
cp -i 源文件 目标文件 # 覆盖之前交互提示,可if一起使用

1.4 删除rm

rm +所需删除文件 # rm ./file7 删除当前目录下的f文件

rm -i # 增加一个删除前的提示
rm -f # 免交互删除
re -v # 交互
rm -r # 递归删除,先进入文件夹最底层,一层层删除
rm -rf / # 删库跑路。。。

1.5 移动mv

mv 源文件 目标目录
mv -i 系统默认执行,提示覆盖
mv -f 覆盖不提示,mv前+\页可以,代表转义 

1.6 查找find

在目录层次结构中搜索文件,find命令可以根据名称,属性,创建时间,大小,所属用户等方式查找文件,根据名称查找。

格式:
find +搜索路径 参数 参数相关匹配值 指令(默认-print,可不填)

# 查看结果后,可查看文件以上三个时间的命令:
stat 文件路径 -type 文件类型 指令          
按指定搜索名称查找
# 指定搜索名称--------------------------------------
find 路径 -name 查找内容 指令  # 按照名称条件查询                           
find /etc/ -iname "ifcfg" # -i不指定大小写
find 通配符
find +通配符:
           *:匹配所有,可以匹配空字符
             find /etc/ -name "ifcfg-*" # 查找/etc所有ifcfg的文件
             find/etc/ -name "eth*0" # 查找以eth0开头的文件
             find/etc/ -name "*eth0" # 查找以eth0结尾的文件
             find/etc/ -name "*eth0*" # 查询文件名称包含eth0的文件
             
           []:匹配[]中的任意一个字符
              find /root/ -name "oldboy[thsu]" # 带中括号内的字母的             
           [^]:匹配去掉[]中内容的任意一个内容
               find /root. -name "oldboy[^978]" # 带oldboy除978以外的           
            !:对整个搜索内容结果取反
               find /root. !-name "oldboy[^978]"   
            ?:匹配任意一个字符,字符不能为空
               find /root. -name "oldboy[978?]"
            -i: # 忽略名称大小写
            find /root/test/ -iname "abc*" 
按文件大小查找
# 根据文件大小查找 
# find会自动四舍五入,超过整数的用上级整数
find 路径 -size 文件大小(需加单位,默认b) 后面+l,是结果以列表的方式显示 
# 文件大小参数 n 表示n个单位
             +n 表示n到所有
             -n 表示0到n 
find /root/ -size 10k/-10k/+10k
find /root/ -size -50k -a -size +20k # 此处不加-a也可以,查找+20和-50
了解:-a表示和  -o表示或者 
按时间查找
# 按照时间进行查找 
创建时间,访问时间,修改时间进行查找
find 路径 查找条件参数 天数 指令
# n代表天数
  +n 距离现在n天之前
  -n 距离现在n天之间
  n  距离现在n天
参数: 
    -mtime:内容修改时间(包含创建时间vim)
           find /root/test/ -mtime 3 # 3天前当天创建文件
           find /root/test/ -mtime -3 # 3天以内,不包括今天
           find /root/test/ -mtime +3 # 3天之前不包括今天
    
    -ctime:文件变更时间(修改了位置(mv),所属组,所属用户
           find /root/test/ -ctime 3/-1/+3
           
    -atime:文件访问时间(cat)

按属性查找 -type

了解知识:

f(-):普通文件
d : 目录文件
l : 链接文件
b :设备文件
c : 字符设备文件
s : 套接字文件
p : 管道文件
格式 :find 文件路径  -type  文件类型  指令
# find ./ -type b
# find ./ -type b -ls  # 以列表的方式查看
# find /root/ -type f -ctime +3   # 查询出/root目录下,3天前创建的文件
权限,所属组查询

find 常用指令

-print :打印结果集
# find / -type s -ctime -3 -print

1.7 less 进入文件后上下键翻页

less 文件路径

1.8 more 进入文件后按空格键一页一页翻

more 文件路径

二:文件的输出与重定向

可用在:执行某条命令想看到过程发生了什么事情,可放在文件里;
      某个执行的命令确认是对的,不想看到结果,直接丢黑的文件,/dev/null

2.1 追加和覆盖符

  • > : 覆盖内容

    覆盖符号是将文件内容清空,之后在将新的内容写入文件。
    
  • >> : 追加内容

    # 在文件的末尾追加内容
    [root@localhost ~]# echo "String" >> abc.txt 
    [root@localhost ~]# cat abc.txt 
    String
    [root@localhost ~]# echo "String" >> abc.txt 
    [root@localhost ~]# cat abc.txt 
    String
    String
    

2.2 错误和正确输出分别定向文件

输入内容到文件和输出内容到文件,输出即把相关内容通过设备(显示器等)显示出来,输出又分为正确输出和错误输出。

  • 0代表标准输入

  • 1代表正确输出

  • 2代表错误输出

  • &代表将正确和错误全部都一起输出

不加任何以上1,2,&默认为1,只输出正确的。

[root@locall ~]# ifconfig eth0 1> 2.txt 2> 3.txt
[root@locall ~]# cat 2.txt 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.101  netmask 255.255.255.0  broadcast 192.168.15.255
        inet6 fe80::7558:ba8f:63bd:5f76  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ee:08:57  txqueuelen 1000  (Ethernet)
        RX packets 467  bytes 38382 (37.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 294  bytes 30821 (30.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@locall ~]# ifconfig eth0xx 1>> 2.txt 2> 3.txt
[root@locall ~]# cat 3.txt 
eth0xx: error fetching interface information: Device not found

2.3 输入文件

输入内容即通过键盘把内容定向到文件中。

# >代表将覆盖到a.txt文件中,<代表覆盖的内容来自于后面的文件路径,将后面的文件路径里的内容覆盖到前面的文件中。
# << 代表前面覆盖到b.txt里的内容来自键盘上的输入,后面的efo是个标志的意思,也可自定义换成其它的字母。不与稍后输入的内容重复就好。

[root@locall ~]# cat > a.txt < /etc/hostname
[root@locall ~]# cat a.txt
[root@locall ~]# cat > b.txt < /etc/hostname
[root@locall ~]# cat b.txt
[root@locall ~]# cat > b.txt << efo
> 111
> 222
> 333
> efo
[root@locall ~]# cat b.txt
111
222
333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值