Linux基础命令1:cp、mv、rm、tree、mkdir、rmdir

cp:复制文件和目录



语法:

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

说明:

cp命令用在复制文件或目录,如同时指定两个以上文件,其最后的目的目标是一个已存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。而最后的目标并非是一个已存在的目录,则会出现错误信息。


         目录


不存在


存在且为文件


存在且为目录


一个文件


新建DEST,并将SRC中内容填充至DEST中


将SRC中的内容覆盖至DEST中

注意数据丢失风险!建议用 –i 选项


在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中


多个文件


报错


报错


在DEST下新建与原文件同名的文件,并将原文件内容复制进新文件中


目标

须使用-r选项


创建指定DEST

同名目录,复制SRC目录中所有文件至DEST下


报错


在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

选项:

-a:--archive,等价于-dpR

-d:--no-dereference --preserv=links当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录

-f:--force强行复制文件或目录,不论目标文件或目录是否已存在

-i:覆盖已有文件之前先询问用户

-l:对源文件建立硬连接,而非复制文件

-p:等同--preserv=mode,ownership,timestamp,保留源文件或目录的属性

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理; 如果需要复制目录,则需要加上此选项

-s:对源文件建立符号连接,而非复制文件

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀

-b:覆盖已存在的文件目标前将目标文件备份

-v:--verbose详细显示命令执行的操作

--preserv[=ATTR_LIST]

mode: 权限

ownership: 属主属组

timestamp:

links

xattr

context

all

示例:

[[email protected] testdir]# cp -r /root/bin/ .    #复制指定目录到当前目录下

[[email protected] testdir]# ls

bin

[[email protected] testdir]# ll file1

-rw-r--r--. 1 root root 0 Aug 29 11:26 file1

[[email protected] testdir]# cp -l file1 2       #建立硬链接

[[email protected] testdir]# ll file1

-rw-r--r--. 2 root root 0 Aug 29 11:26 file1

[[email protected] testdir]# ll 2

-rw-r--r--. 2 root root 0 Aug 29 11:26 2

[[email protected] testdir]# cp -s /bin/ls ls    #建立软链接

[[email protected] testdir]# ll ls

lrwxrwxrwx. 1 root root 7 Aug 29 11:38 ls -> /bin/ls

[[email protected] testdir]# cp -sr /root/bin/ rootbin    #如果针对目录需要加-r,否则会报错

[[email protected] testdir]# ll -d rootbin/

drwxr-xr-x. 5 root root 4096 Aug 29 11:38 rootbin/

 

mv:移动和重命名



语法:

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

说明:

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中SOURCE表示源文件或目录,DEST表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

1、如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

2、如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

选项:

-b:--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份

-b:当文件存在时,覆盖前,为其创建一个备份

-f:--force若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录

-i:--interactive交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖

--strip-trailing-slashes:删除源文件中的斜杠“/”

-S<后缀>:为备份文件指定后缀,而不使用默认的后缀

--target-directory=<目录>:指定源文件要移动到目标目录

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作

示例:

[[email protected] testdir]# mv test/ test1     #将test目录名改为test1

[[email protected] testdir]# mv /root/bin/ .    #将root下的bin目录移动到当前目录中

rm:删除文件或目录



语法:

rm [OPTION]... FILE...

说明:

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

选项:

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录

-f:强制删除文件或目录

-i:删除已有文件或目录之前先询问用户

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理

--preserve-root:不对根目录进行递归操作

-v:显示指令的详细执行过程

-i: 交互式

-f: 强制删除

-r: 递归

--no-preserve-root

示例:

[[email protected] testdir]# rm -rf *    #删除当前目录下的所有文件,要小心注意

tree 显示目录树



语法:

tree [-acdfghilnpqrstuvxACDFQNSUX] [-H baseHREF] [-T title ] [-L level [-R]]

[-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]

[--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]

[--filelimit[=]#] [--si] [--timefmt[=]<f>] [<directory list>]

选项:

-a:显示所有文件和目录

-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合

-C:在文件和目录清单加上色彩,便于区分各种类型

-d:先是目录名称而非内容

-D:列出文件或目录的更改时间

-f:在每个文件或目录之前,显示完整的相对路径名称

-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号

-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码

-i:不以阶梯状列出文件和目录名称;

-l:<范本样式> 不显示符号范本样式的文件或目录名称

-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录

-L level:指定显示的层级数目

-n:不在文件和目录清单加上色彩

-N:直接列出文件和目录名称,包括控制字符

-p:列出权限标示

-P pattern: 只显示由指定pattern匹配到的路径

-q:用“?”号取代控制字符,列出文件和目录名称

-s:列出文件和目录大小

-t:用文件和目录的更改时间排序

-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码

-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

示例:

[[email protected] ~]$ tree -L 1    #显示当前目录下的一级目录结构

.

├── backup

├── bin

├── Desktop

├── Documents

├── Downloads

├── function

├── Music

├── Pictures

├── Public

├── repo

├── select

├── Server

├── software

└── Videos

[[email protected] ~]$ tree -L 1 /testdir/    #显示指定目录下的一级目录结构

/testdir/

├── a

└── test1

2 directories, 0 files

mkdir 创建目录 



语法:

mkdir [OPTION]... DIRECTORY...

说明:

指定要创建的目录列表,多个目录之间用空格隔开。如果一个目录中有空格需要用双引号引起来,如果不加引号就被视为是两个目录。还可以建立目录的同时设置目录的权限。

选项:

-p:或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

-m<目标属性>:或--mode<目标属性>建立目录的同时设置目录的权限;

-Z:设置安全上下文,当使用SELinux时有效;

示例:

建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

[[email protected] testdir]# mkdir -m 700 test

[[email protected] testdir]# ll -d test/

drwx------. 2 root root 6 Aug 29 14:35 test/

[[email protected] testdir]# tree test/

test/

└── linux

└── c1

2 directories, 0 files

在当前目录中递归建立目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问

[[email protected] testdir]# mkdir -p -m 750 test/linux/c1

[[email protected] testdir]# ll -d test/linux/c1/

drwxr-x---. 2 root root 6 Aug 29 14:37 test/linux/c1/

rmdir 删除空目录



语法:

rmdir [OPTION]... DIRECTORY...

说明:

rmdir命令可以从一个目录中删除一个或多个空的子目录。删除目录时,必须具有对其父目录的写权限。

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

选项:

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除

--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息

-v或-verboes:显示命令的详细执行过程

示例:

[[email protected] testdir]$ rmdir gh        #删除gh空目录

[[email protected] testdir]$ rmdir test1/    #如果删除的目录不为空,则会报错

rmdir: failed to remove ‘test1/’: Directory not empty

[[email protected] a]$ rmdir -p b

rmdir: failed to remove ‘b’: Directory not empty

[[email protected] a]$ rmdir -p b --ignore-fail-on-non-empty    #忽略错误信息

[[email protected] b]$ rmdir -v c/        #显示命令的执行过程

rmdir: removing directory, ‘c/’

时间: 2025-01-04 17:21:44

Linux基础命令1:cp、mv、rm、tree、mkdir、rmdir的相关文章

Linux常用命令:cp,mv,rm

cp(copy) cp命令可以复制文件或者目录,还可以建立链接文件. [[email protected] ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination) [[email protected] ~]# cp [options] source1 source2 source3 .... directory -R, -r, --recursive      copy directories recursively -p     same as--

linux基础命令学习之mv(7)

mv 1.命令格式 用法:mv [选项] 源文件或目录 目标文件或目录 2.命令功能 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中.在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链

学习linux-基础六(常用命令:cp,mv,rm)

一.cp用于文件拷贝,分为单源文复制和多源复制 单源复制语法:cp [options]-[-t] source dest . 注意事项: 1如果dest不存在,则事先创建此文件,并复制源文件的数据流至dest中. 2如果dest是非目录文件,则会覆盖目标文件. 3如果dest是目录文件,则先在dest目录下创建一个与源文件同名的文件并将源文件数据流复制过来. cp /tmp/ou/111.txt文件到/etc/hh目录下 [[email protected] testdir]# mkdir /t

linux基础命令:cp

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖. 参数: -a 或 --archive     此参数的效果和同时指定"-dpR"参数相同     -b 或 --backup      删除.覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件

linux 文件管理命令cp, mv, rm

linux文件管理 cp, mv, rm 复制命令: cp cp [Option] ... [-T] SRC(源) DEST(目的) (如果目标不存在,则新建DEST, 并将SRC中的内容填充至DEST中. 如果目标存在:如果DEST是文件,将SRC内容覆盖至DEST中. 此时建议为cp命令使用-i选项. 如果DEST是目录,在DEST下新建与原文件同名的文件,并将SRC中内容填充至DEST中) 实例:cp /etc/fstab /tmp/out.tmp    (out.tmp为文件) cp /

linux基础命令——tree

Linux基础命令--tree 编辑文章 -d :只显示目录,不显示其目录下的子文件 -L level:显示第几级 图片描述 显示以rc开头的 备份: 创建多级目录: -v:可以看过程

linux基础命令--笔记

linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .help pwd   help  内置命令可用man cd  等查看. 4  . ls==list 查看目录列表 5 .  mkdir   == make directory  创建目录.例如:mkdir /date -p 递归创建目录 :mk 6  .  cd      ==change directo

Linux运维之路 基础篇:Linux基础命令(一)

Linux运维之路 基础篇:Linux基础命令(一) Linux哲学宗旨: 一切皆文件:把几乎所有的资源,包括硬件设备都组织为文件 有众多单一的小程序组成,一个程序制实现一个功能,组成小程序完成复杂操作 尽量避免和用户交互:实现脚本编程,以自动完成某些功能 使用纯文本文件保存配置信息 终端:用户和主机交互时用到的设备 物理终端:直接接入的设备也叫控制台/dev/console 虚拟终端:附加在物理终端上虚拟出的,默认启动六个,Ctrl+Alt(F1~F6),系统启动时,默认启动虚拟终端1,启动终

Linux 基础命令(一)转

Linux 基础命令 # 使用技巧 # 1. 使用技巧 # 1.1 放大终端字体 Ctrl shift =/+ # 1.2 缩小终端字体 Ctrl - # 1.3 清屏 Ctrl l (clear) # 1.4 自动补齐文件名/目录名 Tab # 1.5 编辑文件内容 gedit 文件名 # 1.6 Ctrl shift t 在当前终端页面新开一个同级终端 # 预览 # 预览 # 1. 切换 change 到指定路径 directory 如 cd | cd # 2. 显示print当前所在路径w

运维基础--Linux基础命令

 Linux基础命令 刚接触Linux,往往会有一个印象就是Linux操作起来比我们熟悉的windows难,其实不然,只要了解熟知了Linux的CLI界面诸多的命令的用法就能使很多在GUI界面下的操作变的无比简单:以下是Linux使用中的几个基础命令: 1.cd: cd [-L|-P] [dir]  改变shell 的工作目录,默认是用户的家目录: cd DIR:切换到DIR目录: cd:   切换至当前用户的家目录: cd - :将工作目录切换至上一次的工作目录:两个目录之间的来回切换! 原理