首页 > 技术文章 > linux与文件操作相关命令

cbzz 2021-12-17 22:48 原文

1.mkdir命令

用途:创建新的文件目录

用法:mkdir [选项] [/路径/]目录名

-p,--parents :此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

-m,--mode:设置权限模式,例如指定新建文件夹的文件訪问模式为770,即rwxrwx---

例:mkdir -m770 -p /a/test

2.touch命令

用途:创建新的文件或修改文件或目录的时间属性

用法:touch [选项] 文件名

-a, 改动文件的访问时间为当前时间

-m,改动文件的改动时间为当前时间

3.mv命令

用途:移动文件或修改文件名称

用法:mv [选项] 文件或目录

-f,force强制的意思,如果目标文件已存在,不会询问会直接覆盖

-i,如果目标文件已存在,会询问是否覆盖

-u,如果目标文件已经存在,且比目标文件新,才会更新

4.rmdir命令

用途:删除目录

用法:rmdir [选项] 目录

-p,递归删除目录

5.rm命令

用途:删除文件或目录

用法:rm [选项] 文件或目录

-f:强行删除文件或目录,不进行提醒

-i:删除文件或目录时提醒用户确认

-r:递归删除整个目录树

常用组合命令:rm -rf、rm -ri

rm命令与rmdir命令区别:

rmdir:具有当前目录的操作权限的所有使用者
rm:所有使用者

6.cp命令

用途:复制文件或目录

用法:cp [选项] 源文件路径  目的文件路径

-a:在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于pdr参数组合

-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l:不复制文件,只是生成链接文件。

7.find命令

用途:查找文件

用法:find path [选项] [行为]

# 与文件权限及名称有关的参数:

-name filename :找出文件名为filename的文件

-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件

-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);

-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;

-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示

-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示

# 例如:

find / -name passwd # 查找文件名为passwd的文件

find . -perm 0755 # 查找当前目录中文件权限的0755的文件

find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte

# 与用户或用户组名有关的参数:

-user name : 列出文件所有者为name的文件

-group name : 列出文件所属用户组为name的文件

-uid n : 列出文件所有者为用户ID为n的文件

-gid n : 列出文件所属用户组为用户组ID为n的文件

# 例如:find /home/hadoop -user hadoop # 在目录/home/hadoop中找出所有者为hadoop的文件

# 与时间有关的参数:

-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;

-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;

-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;

-newer file : 列出比file还要新的文件名

# 例如:find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件

8.ls命令

用途:展示文件夹内容

用法:ls [选择参数]

-a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~ 

-A :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~ 

-d :仅列出目录本身,而不是列出目录内的档案数据 

-f :直接列出结果,而不进行排序 (ls 预设会以档名排序!) 

-F :根据档案、目录等信息,给予附加数据结构,例如: 

*:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案; 

-h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来; 

-i :列出 inode 位置,而非列出档案属性; 

-l :长数据串行出,包含档案的属性等等数据; 

-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!) 

-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; 

-R :连同子目录内容一起列出来; 

-S :以档案容量大小排序! 

-t :依时间排序 

--color=never :不要依据档案特性给予颜色显示; 

--color=always :显示颜色 

--color=auto :让系统自行依据设定来判断是否给予颜色 

--full-time :以完整时间模式 (包含年、月、日、时、分) 输出 

--time={atime,ctime} :输出 access 时间或 改变权限属性时间 (ctime) 而非内容变更时间 (modification time)  

例如:

ls [-aAdfFhilRS] 目录名称 

ls [--color={none,auto,always}] 目录名称 

ls [--full-time] 目录名称  

9.tar命令

用途:tar只能用于打包和解包,并不能压缩,但可以调用-z调用gzip实现压缩

用法:tar [参数] [打包文件名/文件]

-c :新建打包文件

-t :查看打包文件的内容含有哪些文件名

-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中

-j :通过bzip2的支持进行压缩/解压缩

-z :通过gzip的支持进行压缩/解压缩

-v :在压缩/解压缩过程中,将正在处理的文件名显示出来

-f :filename为要处理的文件,f要放在参数的最后

-c :指定压缩/解压缩的目录dir

常用命令:

例子:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

仅打包不压缩:tar -cvf /tmp/etc.tar /etc

打包后以gzip压缩:tar -zcvf /tmp/etc.tar.gz /etc

打包后以bzip压缩:tar -jcvf /tmp/etc.tar.bz2 /etc

例子:将/tmp/etc.tar文件解压缩在/usr下(解压到指定目录 -C)

解压tar:tar -xvf /tmp/etc.tar -C /usr

解压gzip:tar -zxvf /tmp/etc.tar.gz -C /usr

解压bzip:tar -jxvf /tmp/etc.tar.bz2 -C /usr

10.zip

用途:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具 有".zip"扩展名 的压缩文件。

用法:zip [参数] [压缩包名][压缩的目录或者文件的路径]

-m,将文件压缩后,删除原文件

-o, 将压缩文件内的所有文件的最新变动时间设为压缩的时间

-q,安静模式,在压缩的时候不显示指令执行的过程

-r,递归压缩,将自定目录下的所有子文件以及文件一起处理

-x,”文件列表“,压缩时排除文件列表中的文件

例子:压缩/test 目录下的所有文件

zip myzip /test/*

11.uzip

用途:用于解压缩zip文件

用法:unzip [参数] [压缩文件]  (-d [目录])  //如果不是用括号里面的内容,则解压文件在当前工作目录

-c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包

-l 显示压缩文件内所包含的文件

-t 检查压缩文件是否正确

-v 执行时显示压缩文件的详细信息

-q 安静模式,执行时不显示任何信息

-d 指定文件解压后存储的目录

-x 指定不要处理压缩文件中的那些文件

例子:解压/test下的所有文件

uzip -d ./test myzip

 

推荐阅读