linux下对目录及文件的常用操作命令汇总

一、对目录的操作

1、查看当前目录

pwd  查询当前所在完整目录
cd   进入某个文件夹 
常用命令:cd - 返回到上一次工作的目录
ll 类似于于 ls -l,查询目录下的文件,列出文件详细信息;
常用命令:ll -a  列出目录下的所有文件,包括以 . 开头的隐藏文件。

2、新建目录

mkdir 创建目录;
mkdir a  创建名称为a的文件夹
mkdir b/c  文件夹b不存在,创建失败
mkdir -p b/c  创建文件夹b及子文件夹c 

3、删除目录

rmdir 删除一个空目录
rmdir -p 删除指定目录后,若该目录的上层目录已变成空目录,则其一并删除
rm -rf  代表删除一个文件夹及其文件夹下的所有文件

二、对文件的操作

1、查找文件

locate命令:locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个
索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达
update强迫系统立即修改索引数据库。
locate /etc/sh  搜索etc目录下所有以sh开头的文件
locate \*.log 查找后缀为.log的文件
find命令:实时查找,速度慢可能只搜索用户具备读取和执行权限的目录。用来在指定目录下查找文件。
find . -name "*.c"  将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
find . -type f  将目前目录其其下子目录中所有一般文件列出

2、查看文件内容
(1)more——分页显示文件内容

more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(back)一页显示,其基本用法如下:
more    file1             查看文件file1的文件内容;
more   -num   file1    查看文件file1的内容,一次显示num行;
more   +num   file1   查看文件file1的内容,从第num行开始显示;

(2)less——向前或向后查看文件内容

less   file1    查看文件file1的内容;
less   -m    file2     查看文件file2的内容,并在屏幕底部显示已显示内容的百分比;
按空格键显示下一屏的内容,按回车键显示下一行的内容; 
按 U向前滚动半页,按 Y 向前滚动一行;
按[PageDown]向下翻动一页,按[PageUp]向上翻动一页;

(3)head——查看文件开头内容

head  -n  <行数>   filename      显示文件内容的前n行;默认10行
例如:head   -n   5   file1     显示文件file1的前5行内容
head   -c  <字节>    filename      显示文件内容的前n个字节;
例如:head  -c  20  file2      显示文件file2的前20个字节内容
head -20 filename       显示文件内容的前20行;

(4)tail——查看文件结尾内容
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

tail    file1      显示文件file1的尾部10行内容;
tail  -n  <行数>  filename    显示文件尾部的n行内容;
例如:tail  -n  5   file1    显示文件file1的末尾5行内容
tail  -c  <字节数>   filename     显示文件尾部的n个字节内容;
例如:tail  -c  20   file2    显示文件file2的末尾20个字节
head -20f filename       显示文件内容的最后20行,且持续观察下去;

(5)cat——显示文件内容

cat   file1        用于查看文件名为file1的文件内容;
cat   -n   file2       查看文件名为file2的文件内容,并从1开始对所有输出的行数(包括空行)进行编号;
cat   -b   file3      查看文件名为file3的文件内容,并从1开始对所有的非空行进行编号;

(6)tac——倒着显示文件内容
文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写

tac file1   用于查看文件名为file1的文件内容;

(7)nl——显示行号查看文件内容

nl file1   用于查看文件名为file1的文件内容;

(8)grep命令
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来

 grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
 grep -v test *test*  #查找文件名中包含test 的文件中不包含test 的行  

3、新增文件
(1)touch

touch aa.text 创建一个文件
touch test1.txt test2.txt 同时创建两个文件
touch test{0001..2000}.txt  批量创建文件(如创建2000个文件)
touch aa.ini  更改文件 aa.ini时间为当前时间(aa.ini已存在)

(2)vi和vim(vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本)

vi test.txt
vim test.txt

(3)使用>和>>

> a.text 直接用>创建空文件
>> a.text 直接用>>创建空文件
ls > a.text 创建并将结果写入文件(覆盖原文件内容)
ls >> a.text 创建并将结果写入文件(不覆盖原文件内容,在后面新增)
>和>>可以搭配很多命令使用,可以理解为将其它命令的结果写入文件

(4)copy

复制文件test.txt到/a/b目录
cp test.txt /a/b
复制文件夹 c到/usr/local目录
cp -r c/ /a/b
再次复制文件test.txt到/usr/local目录,强制覆盖
cp -f test.txt /a/b
再次复制文件test.txt到/usr/local目录,询问是否强制覆盖
cp -i test.txt /a/b
复制文件tests.txt到/a/b目录,并把修改时间和访问权限也复制
cp -p test.txt /a/b

(5)cat

cat > test.text
cat >> test.text
用的也是 > 和 >> ,敲完上述命令会进入文件的编辑模式,可以直接输入你想要写入的内容,最后按ctrl+z退出编辑模式自动保存

cat+eof/exit

cat >> test.text<<eof
ccccccccccccccccccccccc
eof
eof可以作为一个分界符,遇到下一个分界符时停止输入;exit也一样,大小写一样。

3、修改文件
(1)修改文件名

rename filename1 refilename1 filename1 修改filename1名称(可用于批量修改)
mv abc.txt 1234.txt 可用于文件夹

(2)修改文件内容(vi、vim、sed)

使用 vi/vim 进入一般模式
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
按下 ESC 按钮回到一般模式
在一般模式中按下 :wq 储存后离开

详细请参考:https://ipcmen.com/vi-vim
sed请参考:https://www.runoob.com/linux/linux-comm-sed.html
4、删除文件

rm
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

三、文件或文件夹权限
1、更改文件/文件夹所属用户组

chgrp
-h :只对于链接进行变更,而非该链接真正指向的文件
-R :对当前目录下的所有文件与子目录进行相同的所有者变更
chgrp users test.txt  修改 test.txt 的所属群组为users

2、更改文件、文件夹所属用户

chown
-h :只对于链接进行变更,而非该链接真正指向的文件
-R :对当前目录下的所有文件与子目录进行相同的所有者变更
chown zheng:users test.txt 修改 test.txt 的所属用户为zheng,所属群组为users

3、更改文件、文件夹权限
文件权限:
在这里插入图片描述
r 读权限read 4
w 写权限write 2
x 操作权限execute 1
-对应数值0

chmod
-R :对当前目录下的所有文件与子目录进行相同的所有者变更
chmod 777 test.txt 
chmod o w xxx.xxx

u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
数字相加法:
-rwx------:等于数字表示700。
-rwxr—r–:等于数字表示744。
-rw-rw-r-x:等于数字表示665。
drwx—x—x:等于数字表示711。
drwx------:等于数字表示700。

四、文件的压缩

tar
  解包:tar zxvf filename.tar
  打包:tar czvf filename.tar dirname
gz命令
  解压1:gunzip filename.gz
  解压2:gzip -d filename.gz
  压缩:gzip filename
      .tar.gz 和  .tgz
      解压:tar zxvf filename.tar.gz
      压缩:tar zcvf filename.tar.gz dirname
      压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
  解压1:bzip2 -d filename.bz2
  解压2:bunzip2 filename.bz2
  压缩:bzip2 -z filename
        .tar.bz2
       解压:tar jxvf filename.tar.bz2
       压缩:tar jcvf filename.tar.bz2 dirname
bz命令
    解压1:bzip2 -d filename.bz
    解压2:bunzip2 filename.bz
         .tar.bz
       解压:tar jxvf filename.tar.bz
z命令
    解压:uncompress filename.z
    压缩:compress filename
        .tar.z
          解压:tar zxvf filename.tar.z
          压缩:tar zcvf filename.tar.z dirname
zip命令
    解压:unzip filename.zip
    压缩:zip filename.zip dirname
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐