目录
- 文件相关命令
1.1. touch
1.2. rename
1.3. file - 目录相关命令
2.1. mkdir
2.2. rmdir - 管理文件目录相关命令
3.1. cp
3.2. mv
3.3. rm
3.4. shred
3.5. tree
文件相关命令
touch创建文件
[root@centos7 data]#touch f11.txt
[root@centos7 data]#ls f11.txt
f11.txt
rename
- 批量修改文件名
# 将所有z?.txt的文件的文件名中的 .txt的字符替换成.bak
[root@centos7 test4]#rename '.txt' '.bak' z?.txt
file
- 检查文件的类型,然后确定适当的打开命令或应用程序使用
[root@centos7 data]#file test_link
test_link: symbolic link to `/etc/fstab'
[root@centos7 data]#
[root@centos7 data]#
[root@centos7 data]#file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=797f79d6d2dc5a84cdc3c21df400f65569ce9a92, stripped
目录相关命令
mkdir 创建目录
- -p: 存在于不报错,且可自动创建所需的各目录
- -v: 显示详细信息
- -m MODE: 创建目录时直接指定权限
rmdir 删除空目录 (很少用,一般都用rm)
- -p: 递归删除父空目录
- -v: 显示详细信息
管理文件目录相关命令
cp复制文件和目录
- cp [options] src des
- cp -t des src
相关选项
cp选项 | 说明 |
---|---|
-i | 覆盖前提示 |
–n | 不覆盖,注意两者顺序 |
-r, -R | 递归复制目录及内部的所有内容 |
-a | 归档,相当于-dR --preserv=all 且保留属性 |
-v | –verbose 详细信息 |
-f | –force |
-u | –update 只复制源比目标更新文件或目标不存在的文件 |
cp命令的多种情况
src des | 不存在 | 存在且为文件 | 存在且为目录 |
---|---|---|---|
一个文件 | des的目录必须存在,然后才新建文件并从SRC填充至DES | src覆盖des | 在des中新建同名文件,然后将SRC内容填充 |
多个文件 | ERROR | ERROR | 在des中新建同名文件,然后将SRC内容填充 |
目录必须使用-R选项 | 在des中新建同名目录,然后将SRC目录中的所有文件复制至DES中 | ERROR | 在des中新建同名目录,然后将SRC目录中的所有文件复制至DES中 |
# src 单个文件,des不存在,且路径不存在
[root@centos7 /]#cp /etc/fstab /data/cptest/
cp: cannot create regular file ‘/data/cptest/’: Not a directory
# src 单个文件,des存在且为文件
[root@centos7 cptest]#touch fstab
[root@centos7 cptest]#cp /etc/fstab /data/cptest/fstab
cp: overwrite ‘/data/cptest/fstab’? y
[root@centos7 cptest]#ll
total 4
-rw-r--r-- 1 root root 595 Aug 13 16:21 fstab
[root@centos7 cptest]#
# src 单个文件,des存在且为目录
[root@centos7 cptest]#mkdir /fstab
[root@centos7 cptest]#
[root@centos7 cptest]#mkdir fstab
[root@centos7 cptest]#cp /etc/fstab /data/cptest/fstab/
[root@centos7 cptest]#cd fstab/
[root@centos7 fstab]#ll
total 4
-rw-r--r-- 1 root root 595 Aug 13 16:24 fstab
mv
- 移动和重命名文件
语法
- mv [OPTION]… [-T] SOURCE DEST
- mv [OPTION]… SOURCE… DIRECTORY
- mv [OPTION]… -t DIRECTORY SOURCE…
第三种方式可以用来做rm别名,防止误删除
定义别名
rm 删除某个文件湿rm =mv 把文件放入/data/trash/中,可以部分防止误删除
alias rm=“mv -t /data/trash”
写入硬盘则写入相应的.bashrc中
rm
- -r : 递归,删除文件夹里的子文件夹里的数据,删除文件夹必须加
- -f : 强制删除,不询问
当正在删除的文件还其他进程占用,文件确实删除,但不释放磁盘空间,直到进程结束
删除大文件的方法
rm -f bigfile
>bigfile
- 用0填充bigfile ,迅速让大文件的大小为0,然后再rm -f 删除
相对安全的方法shred命令
- shred -zv -n 6 bigfile
- -u 覆盖之后删除
- -z 对该文件填充0
- -n 后跟具体覆盖次数,6为6次覆盖
[root@centos7 dir1]#shred -zvu -n 6 bigdata
shred: bigdata: pass 1/7 (random)...
shred: bigdata: pass 2/7 (aaaaaa)...
shred: bigdata: pass 3/7 (000000)...
shred: bigdata: pass 4/7 (555555)...
shred: bigdata: pass 5/7 (ffffff)...
shred: bigdata: pass 6/7 (random)...
shred: bigdata: pass 7/7 (000000)...
shred: bigdata: removing
shred: bigdata: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: bigdata: removed
tree显示目录树
- -d: 只显示目录
- -L level:指定显示的层级数目
- -P pattern: 只显示由指定pattern匹配到的路径
[root@centos7 home]#tree
.
├── ansible
├── bash
├── gentoo
├── git
├── hacker
├── harry
├── help
├── jack
├── kittycat
├── mage
├── mysql
├── nginx
├── shelltest1
├── testshell
├── tom
├── tomcat
├── tommy
├── tommy1
├── usertest110
├── usertest111
├── varnish
├── wang
├── www
└── zhu
├── at.allow
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── Templates
├── Videos
├── zaaa
├── zhu1
├── zhu2
└── zhu3
32 directories, 5 files
[root@centos7 home]#