linux文件和目录的删除新建移动等操作
Posted hopelooking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文件和目录的删除新建移动等操作相关的知识,希望对你有一定的参考价值。
在Linux下进行切换目录 cd
在Linux下查看当前目录下的内容 ls、 ll、 ls -al
如何显示当前命令所在的目录路径 pwd
在Linux下创建目录 mkdir
在Linux下创建文件 直接vim 编辑好之后:wq回车就可以了
在Linux下删除目录或文件 rm -rf
在Linux下复制目录或文件 复制文件 cp 原路径 新路径以及新名 复制文件夹 cp -r 原文件夹 新文件夹
在Linux下移动目录或文件 mv /home/1.txt /opt/ 文件夹也是一样的做法
通过basename获取路径中的文件名
用途说明
basename命令用于去掉文件名的目录和后缀(strip directory and suffix from filenames),对应的dirname命令用于截取目录
常用参数
格式:basename NAME
去掉NAME中的目录部分。
path dirname basename "/usr/lib" "/usr" "lib" "/usr/" "/" "usr" "usr" "." "usr" "/" "/" "/" "." "." "." ".." "." ".."
格式:basename NAME SUFFIX
去掉NAME中的目录部分和后缀SUFFIX,如果没有了,则输出SUFFIX。
使用示例
示例一
[[email protected] ~]# basename /usr/bin/sort
sort
[[email protected] ~]# dirname /usr/bin/sort
/usr/bin
[[email protected] ~]#
示例二
[[email protected] ~]# basename /usr/include/stdio.h .h
stdio
[[email protected] ~]# basename /usr/include/stdio.h stdio.h
stdio.h
通过dirname获取路径中的目录名
用途说明
dirname命令可以取给定路径的目录部分(strip non-directory suffix from file name)。这个命令很少直接在shell命令行中使用,我一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。根据手册页上说的“Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”,似乎说“取给定路径的目录部分” 并不能很准确的概括dirname命令的用途。Linux下还有一个命令是basename,它与dirname相反,是取得文件名称部分。
常用参数
无。
使用示例
示例一 来自手册页的例子
[[email protected] ~]# dirname /usr/bin/sort
/usr/bin
[[email protected] ~]# dirname stdio.h
.
[[email protected] ~]#
示例二
[[email protected] ~]# dirname /usr/bin
/usr
[[email protected] ~]# dirname /usr/bin/
/usr
注意:此处的输出结果,似乎有点怪。这应该看下dirname命令的源代码才能解释了。
示例三 在bash脚本中的运用
- #!/bin/sh
- # 跳转到脚本所在目录
- cd $(dirname "$0") || exit 1
- # 剩下的部分
这个写法我经常用到,因为有时候脚本执行时无法确定是在哪个目录,比如脚本用在crontab中时。
另一个写法是:cd `dirname $0` 其中反引号··等同于$()。
示例四 与另外一种截取目录的方法的比较
可以用${pathname%/*}截取掉pathname后面的文件部分。
[[email protected] ~]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin
[[email protected] ~]# pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/*}
/usr /usr/bin
[[email protected] ~]# pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/*}
/usr /usr
[[email protected] ~]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
[[email protected] ~]# pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/
[[email protected] ~]# pathname=/; echo $(dirname $pathname) ${pathname%/*}
/
[[email protected] ~]# pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*}
. stdio.h
[[email protected] ~]#
以上是关于linux文件和目录的删除新建移动等操作的主要内容,如果未能解决你的问题,请参考以下文章