Linux指令之文件管理命令

此篇博客的指令运行环境为vmware下的ubuntu2020.04

1、文件显示

1.1 cat

功能:显示文本文件的内容

//常见用法
gec@gec-sakura:~/test$ ls
hello.c  test.txt
gec@gec-sakura:~/test$ cat hello.c   //显示文本文件内容
#include <stdio.h>

int main(int argc,char** argv)
{
	printf("hello world!\n");

	return 0;
}
gec@gec-sakura:~/test$ cat -n hello.c    //cat -n 文件名字   --->  显示文本文件内容(显示行号)
     1	#include <stdio.h>
     2	
     3	int main(int argc,char** argv)
     4	{
     5		printf("hello world!\n");
     6	
     7		return 0;
     8	}
gec@gec-sakura:~/test$ cat -A hello.c    //cat -A 文件名字   --->  显示文本文件内容(含不可见字符)
#include <stdio.h>$
$
int main(int argc,char** argv)$
{$
^Iprintf("hello world!\n");$
$
^Ireturn 0;$
}$

注意:
在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序源文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。

1.2 head/tail

功能:查看指定文件的头部/尾部内容

//常见用法
file.name为文件名字 -n为 n为展示的行数
gec@ubuntu:~$ head file.name 
gec@ubuntu:~$ head -n file.name
gec@ubuntu:~$ tail file.txt
gec@ubuntu:~$ tail -n file.name

gec@gec-sakura:~/test$ head -4 hello.c 
#include <stdio.h>

int main(int argc,char** argv)
{
gec@gec-sakura:~/test$ tail -4 hello.c 
	printf("hello world!\n");

	return 0;
}

1.3 less/more

功能:以分页方式查看长文件

//常见用法:
//file.name 为 文件的名字
gec@ubuntu:~$ less file.name
gec@ubuntu:~$ more file.name

//more
按enter一行一行的显示,空格键一屏一屏的显示,按q退出
//less
方向键上/下,按q退出

1.4 od

功能:查看二进制文件

//常见用法
file 为 二进制文件的名字
gec@ubuntu:~$ od -x file  --> 以十六进制查看file
gec@ubuntu:~$ od -o file  --> 以八进制查看file
gec@ubuntu:~$ od -d file  --> 以十进制查看file
gec@ubuntu:~$ od -b file  --> 以二进制查看file

2、文件复制

2.1 cp(copy)

功能:复制文件或者复制整个目录

//常见用法
gec@ubuntu:~$ cp file1 file2    ==> 将文件file1复制为file2
gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/

注意:如果file2 或 dir2 已存在,则将会被覆盖

cp【options】SOURCE DEST
SOURCE:源文件。即可以是普通文件,也可以是目录
DEST:目标文件。即可以是普通文件,也可以是目录
options:-r: recursive(递归),若DEST是目录文件,必须要用递归删除。
        -f: force(强制)。非交互模式

2.2 scp(security copy)

功能:跨网络复制文件或者复制整个目录

//常见用法
将远程主机x.x.x.x中的文件a.txt复制到当前目录下,file.name 为 文件名字
gec@ubuntu:~$ scp user@x.x.x.x:/home/gec/file.name .

注意:
user是源文件所在主机的用户名。
x.x.x.x是源文件所在主机的IP地址。
成功执行上述命令后,需要输入主机x.x.x.x中用户user的密码方可复制文件。

3、创建与删除

3.1 touch

功能:1、在文件存在的情况下:将文件最近修改时间更新为当前时间

           2、在文件不存在的情况下:创建一个空文件

//假设test.txt已存在
gec@gec-sakura:~/test$ ls -l
总用量 28
-rwxrwxr-x 1 gec gec 16696 3月   1 14:25 hello
-rw-rw-r-- 1 gec gec    94 3月   1 14:11 hello.c
-rw-rw-r-- 1 gec gec     5 2月  28 18:55 test.txt
gec@gec-sakura:~/test$ touch test.txt 
gec@gec-sakura:~/test$ ls -l
总用量 28
-rwxrwxr-x 1 gec gec 16696 3月   1 14:25 hello
-rw-rw-r-- 1 gec gec    94 3月   1 14:11 hello.c
-rw-rw-r-- 1 gec gec     5 3月   1 14:49 test.txt

//假设test.c不存在
gec@gec-sakura:~/test$ touch test.c
gec@gec-sakura:~/test$ ls -l
总用量 28
-rwxrwxr-x 1 gec gec 16696 3月   1 14:25 hello
-rw-rw-r-- 1 gec gec    94 3月   1 14:11 hello.c
-rw-rw-r-- 1 gec gec     0 3月   1 14:50 test.c
-rw-rw-r-- 1 gec gec     5 3月   1 14:49 test.txt

3.2 mkdir/rmdir(make/remove directory)

功能:创建/删除空目录

//常见用法
gec@ubuntu:~$ mkdir dir1      // --> 创建空目录dir1
gec@ubuntu:~$ mkdir dir2/dir3 -p  //  --> 创建嵌套空目录dir2/dir3
gec@ubuntu:~$ rmdir dir4      // --> 删除空目录dir4

gec@gec-sakura:~/test$ mkdir dir1
gec@gec-sakura:~/test$ ls
dir1  hello.c
gec@gec-sakura:~/test$ mkdir -p ./dir2/dir3
gec@gec-sakura:~/test$ ls
dir1  dir2  hello.c
gec@gec-sakura:~/test$ rmdir dir1
gec@gec-sakura:~/test$ ls
dir2  hello.c

注意:
如果目录不为空,则不能用rmdir删除,而只能用rm,比如上述的目录dir2,由于dir2中有dir3,因此dir2不是空目录,此时只能这么删除

3.3 rm(remove)

功能:删除文件或目录

//常见用法:
gec@ubuntu:~$ rm file.name    //删除文件
gec@ubuntu:~$ rm -r dir/      //删除目录

gec@gec-sakura:~/test$ ls
dir2  hello.c
gec@gec-sakura:~/test$ rm hello.c 
gec@gec-sakura:~/test$ rm dir2/
rm: 无法删除 'dir2/': 是一个目录
gec@gec-sakura:~/test$ rm dir2/ -r
gec@gec-sakura:~/test$ ls
gec@gec-sakura:~/test$ 

rm 【options】DEST 可选项是可以有可以没有
DEST:要删除的目标(普通文件,目录)
options:1、-r(recursive)递归 若DEST是目录文件,必须要用递归删除
         2、-f(force)强制 非交互模式删除
交互模式:在正式删除之前会询问用户是否确实要删除
非交互模式:不询问用户是否确定删除

4、查找

4.1 find

功能:在指定目录中,按指定条件寻找文件

//常见用法
gec@ubuntu:~$ find /usr -name "*.h" ==> 在/usr中查找以.h结尾的文件
gec@ubuntu:~$ find /tmp -type s     ==> 在/tmp中查找类型为套接字的文件

find xxx -name "xxx1"(在目录xxx下查找文件xxx1) ---->-name 后面输入的是文件名或者目录   find 目录名 -name "文件名"
        find /home/gec -name "test.c" //("*.c")

        
        find ./test -name "hello.c"  ---->在指定的目录下查找字符串为的hello.c文件名 ,如果是当前目录下查找,可以省略./test
        
        比如:
        gec@ubuntu:~$ find ./test/ -name "stdio.h"  ---->查找文件
        ./test/stdio.h
        gec@ubuntu:~$ find ./test/ -name "dir1" ---->查找目录
        ./test/dir1

        
        [13.1] 文件名
         find 查找的目录 -name "查找的文件名或者目录"
        [13.2] 文件类型
         find 查找目录 -type 文件类型 比如: find ./ -type f
            -  普通文件    find ./ -type f ------>查看当前目录下的普通文件
            d  目录文件
            b  块设备文件
            c  字符设备文件
            l  连接文件
            p  管道文件
            s  套接字文件
        [13.3] 文件大小
           find 查找目录 -size -10M
            +:大于 +10k
            -:小于-10k
            等于10k  10k
            单位:
k----小写
                 M-----大写
            大于10k小于100k
            比如:find . -size +10k -size -100k
                  find . -size +10k -size -20k
        [13.4] 按日期
                          find 查找的目录 -ctime +(-)n
            1) 创建日期   -ctime -n或者+n    //creat
            -n:n天以内
            +n:n天以外
            比如:find . -ctime -1
            2) 修改日期:-mtime -n或者+n   //modify
            3) 访问日期:-atime -n或者+n  //access

4.2 grep

功能:在指定文件或目录中,按指定条件寻找字符串

//常见用法:
gec@ubuntu:~$ grep 'apple' /usr -rn ==> 在/usr中查找包含apple的文件

grep 'test' xxx -Hn(在xxx文件中查找字符test,如果找到将行号与文件名打印出来)
grep 'main' test.c -Hn

        
grep 'test' * -Hrnw(在当前目录下查找所有文件字符串‘test’,如果查看到,则逐个打印出来,并且打印行号与文件名)

5、其它

5.1 diff(difference)

功能:比较两个文件的差异

gec@ubuntu:~$ diff file1 file2      ==> 检测文件file1和file2的差异信息
gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息

gec@gec-sakura:~/test$ diff test.txt test2.txt 
1d0
< 123
gec@gec-sakura:~/test$ diff test.txt test2.txt -urN
--- test.txt	2023-03-01 15:18:20.970710354 +0800
+++ test2.txt	2023-03-01 15:18:03.294663625 +0800
@@ -1 +0,0 @@
-123

5.2 file(determine file type)

功能:检测指定文件的格式信息

//常见用法:
gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式
gec@ubuntu:~$ file a.out     ==> 检测文件a.out的格式

gec@gec-sakura:~/test$ file dir1
dir1: directory
gec@gec-sakura:~/test$ file test.txt 
test.txt: ASCII text

5.3 mv(move)

功能:移动文件,或给文件重命名

//常见用法:
gec@ubuntu:~$ mv file dir/
gec@ubuntu:~$ mv file1 file2

移动:mv   SOURCE   DEST 把SOURCE移动到DEST中去
重命名:mv  1.txt  2.txt      把1.txt改名为2.txt

gec@gec-sakura:~/test$ ls
dir1  test2.txt
gec@gec-sakura:~/test$ mv test2.txt dir1/
gec@gec-sakura:~/test$ ls
dir1
gec@gec-sakura:~/test$ ls -l ./dir1/
总用量 0
-rw-rw-r-- 1 gec gec 0 3月   1 15:18 test2.txt
gec@gec-sakura:~/test$ mv dir1/ dir2/
gec@gec-sakura:~/test$ ls
dir2

5.4 wc

功能:计算字符数、单词数和行数

//常见用法:
gec@ubuntu:~$ wc          ==> 计算从键盘输入的数据,以ctrl+d结束
gec@ubuntu:~$ wc file.txt ==> 计算文件file.txt的数据

gec@gec-sakura:~/test$ wc
auidhabudiahwduj
      1       1      17
gec@gec-sakura:~/test$ ls
dir2
gec@gec-sakura:~/test$ wc ./dir2/test2.txt 
0 0 0 ./dir2/test2.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值