一
- set -u // 脚本只要发生错误,就终止执行
- set +e //,set +e表示关闭-e选项,set -e表示重新打开-e选项。
- set -o pipefail //,只要一个子命令失败,整个管道命令就失败,脚本就会终止执行。
写法1, set -euxo pipefail
写法2
set -eux
set -o pipefail
以上两种写法通常放在所有bash文件头部
二
1. cp 命令
cp [选项] 源文件或目录 目标文件或目录
# 该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中
eg: cp -Rf a/ b/ # 复制a 文件夹下的所有内容到b文件
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
源是文件:
* 目标文件不存在,则会新建目标文件,并将源内容填充至目标文件中
* 目标是已存在文件,会将源内容覆盖至目标文件中
* 目标是目录,则会在目标目录下新建与源同名的文件,并将源的内容填充至新文件中
- 源是多个文件,则目标必须是目录且存在,其他情形均为出错 源是目录:需使用-r选项,表示递归 * 目标不存在,则会创建指定目录,只能是单个源目录 * 目标存在且是目录,则会将源下所有文件和目录复制到目标中去
————————————————
版权声明:本文为CSDN博主「宅宅微」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/vv19910825/article/details/80484836
2. mv 命令
命令用来为文件或目录改名、或将文件或目录移入其它位置。
- mv source_file(文件) dest_file(文件) # 将源文件名 source_file 改为目标文件名 dest_file
- mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录 dest_directory 中
- mv source_directory(目录) dest_directory(目录) #目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
- mv source_directory(目录) dest_file(文件) 出错
3. mkdir 命令 创建目录
命令用于创建目录。
-p 确保目录名称存在,不存在的就建一个。
mkdir -p runoob2/test 创建两级目录
创建权限为777的目录
mkdir -m 777 test3
4 . 当前目录下创建/text5/text6,权限为750
mkdir -p-m 750 text5/text6
选项
-m --mode=模式,建立目录的时候同时设置目录的权限;
-p --parents 若所建立的上层目录目前尚未建立,则会一并建立上层目录;
-v --verbose 每次创建新目录都显示信息
-h --help 帮助信息
4. 创建文件
1.touch aa.txt #创建一个文件
2.投产 aa.txt bb.txt 创建两个文件
3.> 直接覆盖原文件,不会有任何提示
4.>> 追加在原文件末尾,不会覆盖原文件的内容
5.>a.txt 直接创建文件,并且命令行写入内容
- ls > a.txt 创建文件a.txt 并且将当前同级文件名称写入
- ls >> a.txt同6
- ps -ef | grep java > a.txt grep 创建文件(将结果写入文件)
- echo $PATH > a.txt cho 创建文件(将结果写入文件)
- cp a.txt c.txt 只要目标文件是新文件则算创建文件
- cat >> aa.txt << eof 同5 写入内容后,输入eof 退出
- cat >> zz.txt << exit同11
5. 删除文件
rm -rf /a/ 删除目录a下的所有文件
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
-i 询问是否删除
6. shell获取当前目录,上级目录路径
当前目录
(dirname $(pwd))
未完待续。。。
欢迎关注。公众号:程序员蜗牛, 分享遇到的点滴技术,积累经验//