002-linux命令-文件和目录、查看文件内容-【cp、${}、basename、dirname、ls】
一、文件和目录
1.1、cp复制
语法
cp [options] <source file or directory> <target file or directory> 或 cp [options] source1 source2 source3 …. directory
options选项包括:
- a 保留链接和文件属性,递归拷贝目录,相当于下面的d、p、r三个选项组合。 - d 拷贝时保留链接。 - f 删除已经存在目标文件而不提示。 - i 覆盖目标文件前将给出确认提示,属交互式拷贝。 - p 复制源文件内容后,还将把其修改时间和访问权限也复制到新文件中。 - r 若源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。当然,目标文件必须为一个目录名。 - l 不作拷贝,只是链接文件。 -s 复制成符号连结文件 (symbolic link),亦即『快捷方式』档案; -u 若 destination 比 source 旧才更新 destination。
示例
cp file1 file2 复制一个文件 cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a /tmp/dir1 .复制一个目录到当前工作目录 cp -a dir1 dir2 复制一个目录 cp -rvf dir1 dir2 复制文件夹dir1到dir2,显示进度 cp -rf dir1 dir 复制文件夹dir1到dir2,不显示进度
1.2、shell 提取文件名和目录名
1.2.1、使用变量操作符 ${}
1、${var##*/}
该方式是从左开始最大化匹配到字符"/",然后截掉左边内容(包括字符"/"),返回余下右侧部分。
$ var=/dir1/dir2/file.txt $ echo ${var##*/} file.txt
在shell脚本中,可以使用变量来保存这个结果,再加以利用,如file=${var##*/}
我们将"/" 换成"."
$ var=/dir1/dir2/file.txt $ echo ${var##*.} txt
2、${var#*.}
该方式是从左开始第一次匹配到字符".",然后截掉左边内容(包括字符"."),返回余下右侧部分。
$ var=/dir1/dir2/file.tar.gz $ echo ${var#*.} tar.gz
3、${var%/*}
该方式是从右开始第一次匹配到字符"/",然后截掉右边内容(包括字符"/"),返回余下左侧部分。
$ var=/dir1/dir2/file.txt $ echo ${var%%/*} /dir1/dir2
4、${var%%.*}
该方式是从右开始最大化匹配到字符".",然后截掉右边内容(包括字符"."),返回余下左侧部分。
小结:
1.2.2、basename和dirname
命令是专门用来截取文件名和路径名的。
1、basename
$ var=/dir1/dir2/file.txt $ echo $(basename ${var}) file.txt
2)从上面命令的用法中可以看到,后缀(SUFFIX)是一个可选项。所以,若只想提取出文件名file,而不带有后缀,还可以在变量的后面加上后缀名,例子如下:
$ var=/dir1/dir2/file.txt $ echo $(basename ${var} .txt) file
2、dirname
该命令的作用是从路径中提取出路径名,使用方法为 dirname NAME
使用例子如下:
$ var=/dir1/dir2/file.txt $ echo $(dirname ${var}) /dir1/dir2
这样就提取出了file.txt文件所在的路径。
注意:该命令不仅能提取出普通文件所在目录,它能提取出任何文件所在的目录,例如目录所在的目录,如下:
$ var=/dir1/dir2/ $ echo $(dirname ${var}) /dir1
1.2、其他
cd /home :进入‘/home’目录
cd .. 返回上一级目录
cd ../..返回上两级目录
cd 进入个人的主目录
cd ~user1进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的属性结构
lstree 显示文件和目录由根目录开始的属性结构
mkdir dir1 创建一个叫做dir1的目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除file1的文件
rmdir dir1 删除dir1目录
rm -rf dir1 删除dir1目录以及内容
mv dir1 new_dir 重命名/移动 一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0912250000 file1 修改一个文件或目录的时间戳(YYMMDDhhmm)
二、查看文件内容
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看文件的内容
more file1 查看一个长文件内容
less file1 和more类似,反向查看
head -2 file1 查看文件的前两行
tail -2 file1 查看文件最后两行
tail -f /log/message 实时查看被添加到一个文件中的内容
相关文章
- 如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
- Linux下复制粘贴文件的简单操作(linux如何粘贴文件)
- 为提高效率,Linux无盘工作站时代开启(无盘工作站linux)
- Linux下构建多线程应用的指南(linux建立线程)
- Linux开关机日志记录法则(linux开关机记录)
- 掌握Linux文件cp命令的能力(linux文件cp命令)
- Linux运维:找工作的好帮手(linux运维好找工作么)
- Linux更改文件名的命令:一步搞定(linux更改文件名命令)
- Linux命令Bash:开启程序员生涯之路(linux命令bash)
- 轻松启动:Linux 中的 Jar 文件(linux启动jar)
- 管理探索深层Linux系统管理之旅(u深度linux系统)
- Linux的几个分支:从稳定性中汲取力量(linux的分支)
- Linux:追加写入文件的方式(linux追加写文件)
- Linux之旅:探索各种分支(linux的分支)
- Linux实时文件同步技巧(linux实时同步文件)
- 简单易行:重新安装Linux系统(linux系统重新安装)
- Linux编程轻松创建文件(linux编程创建文件)
- Linux文件权限简介及管理方法(linux文件的权限管理)
- 文件Linux 去除重复文件的方法(linux去重复)
- Linux下C语言程序的执行步骤(linux执行c文件)
- 掌握Linux入门必备!25个基础命令让你能轻松驾驭!(linux基础命令)
- 如何修改Linux系统中的盘符:简易教程(linux盘符修改)
- 如何提高 Linux 命令行操作效率:重复命令的技巧(linux重复命令)
- Linux下GVFS文件系统:展示新时代文件存储(linux gvfs)
- Linux轻松安装QQ教你在Linux平台上安装使用QQ(在linux下安装qq)
- Linux下如何操作.csv文件?(linux.csv)
- Linux下gz文件如何解压:简单易学指南(linux下gz解压)
- Aix与Linux下的命令比较研究(aix linux 命令)
- Linux下如何快速查看Zip文件内容(linuxzip查看)