学习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 /tmp/ou
[[email protected] testdir]# cd /tmp/ou
[[email protected] ou]# ls
[[email protected] ou]# touch xixi hehe haha 111.txt
[[email protected] ou]# ls
111.txt  haha  hehe  xixi
[[email protected] ou]# mkdir /etc/hh
[[email protected] ou]# cp /tmp/ou/111.txt /etc/hh/
[[email protected] ou]# ls /etc/hh/
111.txt

  

例子2:如果dest是非目录文件,则会覆盖目标文件。

[[email protected] ou]# cat /tmp/ou/111.txt
hello world!!!!!
I am study computer
[[email protected] ou]# cat /etc/hh/222.txt
ni hao ma zcg
my love girl

[[email protected] ou]# cp -i /tmp/ou/111.txt /etc/h
hal/         hosts        hp/
hh/          hosts.allow  htdig/
host.conf    hosts.deny   httpd/
[[email protected] ou]# cp -i /tmp/ou/111.txt /etc/hh/222.txt
cp: overwrite `/etc/hh/222.txt‘? y
[[email protected] ou]# cat /etc/hh/222.txt
hello world!!!!!
I am study computer
[[email protected] ou]# 

例子3:如果dest不存在,则事先创建此文件,并复制源文件的数据流至dest中。

[[email protected] ou]# ls /etc/hh/
111.txt  222.txt
[[email protected] ou]# cp /tmp/ou/111.txt /etc/hh/300
[[email protected] ou]# ls /etc/hh/
111.txt  222.txt  300

  

多源复制语法:
cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

注意事项:
1如果DIRECTORY是常规文件则显示错误。

2如果DIRECTORY是目录文件则分别复制每个文件至目标目录中,并保持原名。

cp 123,123.txt到/etc/aa/bbb.txt文件下,则显示错误。

[[email protected] ou]# cat /etc/aaa/bbb.txt
catcatcat
!!!!!!!!!!!!!
!!!!!!!!!1
!!!!!!!2
!!!!!3
[[email protected] ou]# ls /tmp/ou/
111.txt  123  123.txt  haha  hehe  xixi
[[email protected] ou]# cp -r /tmp/ou/{123,123.txt} /etc/aaa/bbb.txt
cp: target `/etc/aaa/bbb.txt‘ is not a directory

  

cp 123,123.txt到/etc/hh目录下,则复制文件到目录并保持原名。

[[email protected] ou]# cp -r /tmp/ou/{123,123.txt} /etc/hh
[[email protected] ou]# ls /etc/hh
111.txt  123  123.txt  222.txt  300

  

cp命令常用命令选项:

-i:交互式复制,即覆盖之前提醒用户确认。

-f:强制覆盖目标文件。

-r:递归复制目录中的内容和目录。

-d:复制符号链接文件本身而非指向的源文件。

-a:用于实现归档。

二、mv用于移动源文件到目标文件或目录。

语法:

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

mv /tmp/ou/111.txt到/etc/hh下。

[[email protected] hh]# ls /etc/hh
123  123.txt  222.txt  300
[[email protected] hh]# ls /tmp/ou
111.txt  123  123.txt  haha  hehe  xixi
[[email protected] hh]# mv /tmp/ou/1
111.txt  123/     123.txt/
[[email protected] hh]# mv /tmp/ou/111.txt /etc/hh
[[email protected] hh]# ls /etc/hh/
111.txt  123  123.txt  222.txt  300

  

mv命令常用选项:

-i:交互式复制,即覆盖之前提醒用户确认。

-f:强制覆盖目标文件。

三、rm命令用于删除文件或目录

语法:rm [OPTION]...FILE...

rm -rf(递归目录加强制删除) /tmp/ou/123

[[email protected] hh]# ls /tmp/ou
123  123.txt  haha  hehe  xixi
[[email protected] hh]# rm -rf /tmp/ou/123
[[email protected] hh]# ls /tmp/ou
123.txt  haha  hehe  xixi

  

常用选项:

-i:交互式删除,即删除之前提醒用户确认。

-f:强制删除目标文件。

-r:递归删除目录中的内容和目录。

四、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示

命令执行状态和返回值:bash通过状态返回值来输出此结果,0为成功,1-255为失败。命令执行完成之后,其状态返回值保存于bash的特殊变量$?中。

ls命令后用echo $? 查看结果返回值为0代表命令执行成功。

[[email protected] ~]# ls /tmp/ou
123.txt  haha  hehe  xixi
[[email protected] ~]# echo $?
0

ls命令后用echo $?查看结果返回值为2代表命令执行失败。

[[email protected] ~]# ls /tmp/xxx
ls: cannot access /tmp/xxx: No such file or directory
[[email protected] ~]# echo $?
2

  

命令行展开:~:展开为用户的家目录,{}:可承载一个以逗号分隔的列表,并将其展开为多个路径

切换至家目录,~。

[[email protected] ~]# cd /tmp/ou
[[email protected] ou]# cd ~
[[email protected] ~]# pwd
/root

  

tmp目录下同时创建a,b,c,3个文件。

[[email protected] ~]# cd /tmp/
[[email protected] tmp]# touch {a,b,c}
[[email protected] tmp]# ls
a          ou                  VMwareDnD
b          pulse-lc4gAdMk6CAz  vmware-root
c          pulse-on2an8eSj49w  vmware-root-1848984901
etc        pulse-rpt7fgHJNObK
orbit-gdm  ssh-JNwnUn2843

  

请使用命令行展开功能来完成以下练习

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[[email protected] tmp]# mkdir {a,b}_{c,d}
[[email protected] tmp]# ls
a    bc   etc                 ssh-JNwnUn2843
ac   b_c  orbit-gdm           VMwareDnD
a_c  bd   ou                  vmware-root
ad   b_d  pulse-lc4gAdMk6CAz  vmware-root-1848984901
a_d  c    pulse-on2an8eSj49w
b    d    pulse-rpt7fgHJNObK

  

(2)、创建/tmp/mylinux目录下的:

mylinux/

├── bin

├── boot

│?? └── grub

├── dev

├── etc

│?? ├── rc.d

│?? │?? └── init.d

│?? └── sysconfig

│?? └── network-scripts

├── lib

│?? └── modules

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── usr

│?? └── local

│?? ├── bin

│?? └── sbin

└── var

├── lock

├── log

└── run

[[email protected] ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.dsysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}

  

[[email protected] ~]# tree /tmp/mylinux/
/tmp/mylinux/
└── {bin,boot
    └── grub,dev,etc
        └── {rc.d
            └── init.dsysconfig
                └── network-scripts},lib
                    └── modules,lib64,proc,sbin,sys,tmp,usr
                        └── local
                            ├── bin,var
                            │   ├── lock
                            │   ├── log
                            │   └── run
                            └── sbin,var
                                ├── lock
                                ├── log
                                └── run

15 directories, 0 files

  

文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

stat命令

stat – display file or file system status
显示文件或文件系统的状态

stat FILE…

文件:两类数据
元数据:metadata:access(最后访问),modify(最后修改),change(最后改变)
数据: data

时间戳:
access time:2015-12-10 16:12:22.776423693 +0800
modify time:2015-12-10 16:12:22.776423693 +0800
change time:2015-12-10 16:12:22.776423693 +0800

[[email protected] ~]# echo 123 >> /tmp/functions
[[email protected] ~]# stat /tmp/functions
  File: `/tmp/functions‘
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 917667      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-12-09 16:35:10.187014284 +0800     #最近访问
Modify: 2016-12-09 16:35:10.187014284 +0800      #最近更改:数据修改
Change: 2016-12-09 16:35:10.187014284 +0800     #最近改动:元数据修改、数据修改

  

改变时间戳的命令:touch

touch – change file timestamps
修改文件时间戳

touch [OPTION]… FILE…
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]

[[email protected] ~]# touch -m -t 1212020900.00 /tmp/functions   #修改时间为2012年12月2日09:00
[[email protected] ~]# stat /tmp/functions
  File: `/tmp/functions‘
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 917667      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-12-09 16:35:10.187014284 +0800
Modify: 2012-12-02 09:00:00.000000000 +0800
Change: 2016-12-09 16:41:46.359015406 +0800

如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

定义命令别名使用alias命令

alias命令

别名

获取所有可用的别名定义

~]# alias

别名

~]# alias NAME=‘COMMAND‘

仅对当前shell进程有效
撤销别名:

~]# unalias NAME

  

[[email protected] ~]# alias
alias cp=‘cp -i‘
alias grep=‘grep --color=auto‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[[email protected] ~]# type alias
alias is a shell builtin
[[email protected] ~]# alias cls=clear
[[email protected] ~]# cls          #此时cls拥有了clear的功能
[[email protected] ~]# unalias cls     #取消了clear功能
[[email protected] ~]# cls
-bash: cls: command not found

在命令中引用另一个命令的执行结果,使用管道 |

管道

连接程序,实现将前一个命令的输出直接定向给后一个程序当作输入数据流
COMMAND1 | COMMAND2 | COMMAND3 | …

globbing:文件名通配

(整体文件名匹配,而非部分)

匹配模式:元字符
*:匹配任意长度的任意字符
pa*, *pa*, *pa, *p*a*
pa, paa, passwd

?:匹配任意单个字符
pa?, ??pa, p?a, p?a?
pa, paa, passwd

[]:匹配指定范围内的任意单个字符
有几种特殊格式:
[a-z], [A-Z], [0-9], [a-z0-9]
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号

pa[0-9][0-9], 2[0-9][0-9]
[^]:匹配指定范围外的任意单个字符

[^[:upper:]] 所有非大写字母
[^0-9] 所有非数字
[^[:alnum:]] 所有非字母和数字

显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录

[[email protected] var]# ls -d /var/1*[0-9]*[[:lower:]]
/var/123abc

显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

[[email protected] etc]# lls -d /etc/[0-9]*[^0-9]
-bash: lls: command not found

显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

[[email protected] etc]# ls -d [^a-z][a-z]*
ls: cannot access [^a-z][a-z]*: No such file or directory

在/tmp目录下创建tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-220

[[email protected] etc]# mkdir /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
[[email protected] etc]# cd /tmp/
[[email protected] tmp]# ls
a    b_d                 pulse-on2an8eSj49w
ac   c                   pulse-rpt7fgHJNObK
a_c  d                   ssh-WfBsGL2767
ad   etc                 tfile-2016-12-09-17-02-19
a_d  functions           virtual-zcl1840.QM3SYS
b    mylinux             VMwareDnD
bc   orbit-gdm           vmware-root
b_c  ou                  vmware-root-1848984901
bd   pulse-lc4gAdMk6CAz  vmware-zcl1840

复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

[[email protected] tmp]# mkdir mytest1
[[email protected] tmp]# cp -r /etc/p*[^0-9] /tmp/mytest1

复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中

[[email protected] tmp]# cp -r /etc/*.d /tmp/mytest2

复制/etc目录下所有以l或m或n开头,以.conf结尾的交件至/tmp/mytest3目录中

[[email protected] tmp]# cp -r /etc/[1mn]*.conf /tmp/mytest3

  

  

  

  

 

 

  

  

时间: 2024-10-14 14:09:58

学习linux-基础六(常用命令:cp,mv,rm)的相关文章

【Linux基础】常用命令大全

Linux基础之常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /

linux基础及常用命令的使用

linux系统是一个主要使用命令进行日常工作的系统,所以了解并熟练掌握常用命令的使用是进入linux大门的基本,以下便是linux学习过程中学习的常用的命令的用法: linux的日常管理工作一般有如下几个部分,下面通过这几个方面的管理工作来整理与其相关的常用命令: 一  shell的介绍 1.普通用户需要直接使用计算机系统提供的功能,是非常困难的,因为计算机系统能接收的指令和人发出的指令是不相同的,因此需要在计算机系统及用户之间建立一个可以将相互的指令进行"翻译"的功能.shell就是

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基础之常用命令(二)

一. Linux系统上命令通用格式为: COMMAND    [OPTIONS]    [ARGUMENTS] 命令     选项      参数 1.  命令 命令可分为两类:内置命令和外部命令 内置命令:由shell自带的命令 例如:cd,break,(un)alias,type,file,history,pwd--是系统在启动之初就已经调入到内存中,是常驻内存之中,执行效率高 外部命令:独立的可执行文件,文件即命令:系统根据环境变量中的设置查找来执行.例如:ls.ifconfig.user

Linux基础之常用命令

常用命令: Linux文件系统: 1.文件名名称严格区分字符大小写: 2.文件可以使用除/以外任意字符: 3.文件名长度不能超过255字符: 4.以.开头的文件为隐藏文件: .: 当前目录: ..: 当前目录的上一级目录: /etc/sysconfig/ .: sysconfig ..: /etc 工作目录:working directory 家目录:home 常用命令: pwd: printing working directory 显示工作目录 cd:change directory cd

DAY-7 Linux基础及常用命令(3)

系统监控 1.功能:为了保证服务器的正常运行.一般监控3种状态:CPU的状态.硬盘的状态.内存的状态 2.命令top--检测系统各种进程占用的资源(相当于win任务管理器) 3.CPU的利用率--实际使用时间除以本身工作时间    CPU的平均负载--有多少任务需要执行除以可以执行的任务 4.平均负载系统显示3个时间(1分钟.5分钟.15分钟),更加精确的检测系统负载状态 一.CPU的状态及命令 df--查看硬盘的状态(所有的文件夹都会映射到硬盘的某一个范围内) df –h--人性化的单位去显示

Linux基础之常用命令篇

一.命令的基本格式 [[email protected]~] root为用户名 -表示当前所在位置 localhost主机名 '#'超级用户 '$" 普通用户 命令的基本格式: 命令 [选项] [参数] 二.查询目录的内容 命令格式: ls [选项][文件或目录] 选项: -a 所有文件 -l 查看详情 -d查看目录属性 -h显示文件大小 三.文件处理命令 1.建立目录 mkdir -p [目录名] -p表述递归建文件夹 举例: mkdir japan mkdir -p japan/cangjk

Linux基础和常用命令

经常使用的命令: #查看端口被占用情况 netstat -tunlp|grep 22 #查看java进程 ps -ef|grep java #压缩前端工程 rar a -ep1 ./update/win32.zip ./packages/**/win32/* #查找所有带wine的文件和文件夹 find / -name *wine* #重载环境变量的文件 source /etc/profile #查看进程的内存映像信息 pmap -d 1 #查看内存占用最多的10个进程 ps -aux | so

DAY-9 Linux基础及常用命令(5)

一.Samba(类似共享网盘) 1.功能:Linux操作系统给win用户共享文件用 2.如何部署 >>准备环境:iptables –F(清除防火墙).systemctl disable firewalld(开机默认关闭).systemctl stop firewalld(立即关闭).systemctl status firewalld(查看防火墙状态) 关于SELINUX的修改:Setenforece 0(临时修改),getenforce(查看状态) >>配置ip地址(安装软件包)