Shell | 文件和目录操作
2020-11-10 本文已影响0人
shwzhao
一切皆文件
- 查看路径:pwd、realpath、basename、dirname
- 创建文件:mkdir
- 删除文件:rm、rmdir
- 文件移动和重命名:mv
- 文件复制:cp、scp
- 改变工作目录:cd
1. 查看路径
1.1 pwd
- 功能:显示当前工作目录的绝对路径
$ cd # 同 cd ~
$ pwd
/home/username
1.2 realpath
- 功能:用于获取指定目录或文件的绝对路径
我说我的脚本为啥只能传绝对路径...现在不用担心了
$ realpath test/a.txt
/home/ug0457/test/a.txt
1.3 basename
- 功能:打印目录或者文件的基本名称
$ basename test/a.txt
a.txt
$ basename test/a.txt .txt # .txt 为后缀,结果中会去掉后缀
a
$ basename test/a.txt t
a.tx
1.4 dirname
$ dirname `realpath test/a.txt`
/home/ug0457/test
$ dirname test/a.txt train/software/
test
train
2. 创建
2.1 mkdir
- 全拼:make directory
- 功能:用于创建目录
-p
: 递归创建目录,若父目录不存在则依次创建
mkdir dir #创建名为“dir”的目录
mkdir -p data/genome_data #递归创建
3. 删除
3.1 rm
- 全拼:remove
- 功能:用于删除一个文件或者目录
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
-r
: 将【目录】及以下文件删除
-f
: 强制删除
rm -rf file2 # 强制删除目录
4. 移动
4.1 mv
全拼:move
功能:将文件或目录转移、改名
mv test/a.txt . # 将a.txt移动到当前目录
mv test/a.txt ./b.txt 将a.txt移动到当前目录,并改名为b.txt
5. 复制
5.1 cp
- 全拼:copy
- 功能:复制文件或目录
-r
: 复制目录
cp test/a.txt . # 将a.txt复制到当前目录
cp test/a.txt ./b.txt # 将a.txt复制到当前目录,并改名为b.txt
cp -r file2 file1 #复制目录时加选项-r
5.2 scp
- 全拼:secure copy
- 功能:基于ssh登陆进行安全的远程文件拷贝
人话就是将文件从一台服务器拷贝到另一台服务器
-r
: 递归复制整个目录
scp -r ug0457@116.211.120.204:/home/ug0457/test/a.txt . # 将远程服务器中的a.txt文件拷贝到本地服务器当前目录
6. 改变工作目录
6.1 cd
- 全称:change directory
- 功能:修改工作目录
平时使用cd等命令时注意灵活使用Tab键进行自动补全。
cd #什么都不加,回到home目录
cd / #到根目录
cd ~ #回到用户home目录
cd ../ #到上一层目录
cd - #到上一个目录
cd ../../ #上两层目录
cd /home/username/file/ #cd加绝对路径,到指定目录