文件类型c 字节文件详细说明
ls 参数
-i # 显示inode数
-a # 显示隐藏文件
-r # 逆序输出
-t # 按时间输出
-h # 人类可读
-l # 详细信息
/dev/zero | /dev/null
# 经常用来测试使用,生成大文件
root@linux [07:55:26] [~]
-> # dd if=/dev/zero of=1.txt bs=10MB count=10 # 生成大文件的命令:
dd: 命令
if: input file 要读取/etc/zero
of: output file 输出到当前的1g.txt
bs: 1次输出多大
count: 总共输出的次数
/dev/null 黑洞,执行命令的结果被吸收
root@linux [11:22:24] [~]
-> # ping -c1 www.baidaaaaaaaau.com &> /dev/null | echo $?
2
root@linux [11:22:49] [~]
-> # ll
total 0
drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy1
drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy2
drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy3
-rw-r--r-- 1 root root 0 Jul 10 10:07 oldboyedu3.txt
root@linux [11:23:02] [~]
-> # ll &> /dev/null| echo $?
0
root@linux [11:21:38] [~]
-> # ping -c1 www.baidu.com > /dev/null | echo $?
0
find命令详解
1.查询
(1)按照文件类型查找
(2)按照inode号查询
(3)按照深度等级查询
(4)按照文件大小查询
2.查询交给其他指令
xargs,exec,``,() cp mv rm ls
环境准备
root@linux [10:09:42] [~]
-> # tree
.
├── oldboy1
│ ├── file
│ ├── file1.txt
│ ├── file2.txt
│ └── file3.txt
├── oldboy2
│ ├── file
│ ├── file1.txt
│ ├── file2.txt
│ └── file3.txt
├── oldboy3
│ ├── file
│ ├── file1.txt
│ ├── file2.txt
│ └── file3.txt
├── oldboyedu1.txt
├── oldboyedu2.txt
└── oldboyedu3.txt
-exec<执行指令>:假设find指令的回传值为True,就执行该指令
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-type<文件类型>:只寻找符合指定的文件类型的文件;
(1)按照文件类型查找
root@linux [10:11:56] [~] # 查找当前目录及当前目录子目录中的所有文件,除去隐藏文件
-> # find . -type f | grep -v '^\./\.'
./oldboy1/file1.txt
./oldboy1/file2.txt
./oldboy1/file3.txt
./oldboy3/file1.txt
./oldboy3/file2.txt
./oldboy3/file3.txt
./oldboyedu2.txt
./oldboyedu1.txt
./oldboy2/file1.txt
./oldboy2/file2.txt
./oldboy2/file3.txt
./oldboyedu3.txt
root@linux [10:12:14] [~] # 查找当前目录及当前目录子目录
-> # find . -type d | grep -v '^\./\.'
.
./oldboy1
./oldboy1/file
./oldboy3
./oldboy3/file
./oldboy2
./oldboy2/file
root@linux [10:13:27] [~] # 查找当前目录下及子目录下以fil开头的所有文件
-> # find . -type f -name "fil*"
./oldboy1/file1.txt
./oldboy1/file2.txt
./oldboy1/file3.txt
./oldboy3/file1.txt
./oldboy3/file2.txt
./oldboy3/file3.txt
./oldboy2/file1.txt
./oldboy2/file2.txt
./oldboy2/file3.txt
root@linux [10:14:23] [~] # 查找当前目录及子目录下以old开头的目录
-> # find . -type d -name "old*"
./oldboy1
./oldboy3
./oldboy2
root@linux [10:16:39] [~] # 查找当前目录及子目录下以old开头的文件和目录
-> # find . -name "oldboy*"
./oldboy1
./oldboy3
./oldboyedu2.txt
./oldboyedu1.txt
./oldboy2
./oldboyedu3.txt
(2)按照inode号查询
root@linux [10:34:14] [~]
-> # ls -il
total 0
1308658 drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy1
34514898 drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy2
67161033 drwxr-xr-x 3 root root 69 Jul 10 10:09 oldboy3
67161047 -rw-r--r-- 1 root root 0 Jul 10 10:07 oldboyedu1.txt
67161326 -rw-r--r-- 1 root root 0 Jul 10 10:07 oldboyedu2.txt
67161327 -rw-r--r-- 1 root root 0 Jul 10 10:07 oldboyedu3.txt
root@linux [10:34:45] [~]
-> # find . -inum "1308658"
./oldboy1
(3)按照深度等级查询 -maxdepth x
root@linux [10:36:50] [~]
-> # find . -maxdepth 1 -type f | grep -v '\./\.'
./oldboyedu2.txt
./oldboyedu1.txt
./oldboyedu3.txt
(4)按照文件大小查询
root@linux [10:41:08] [~] +|-| x k|m|g
-> # find . -size 0b -type f | grep -v '\./\.'
./oldboy1/file1.txt
./oldboy1/file2.txt
./oldboy1/file3.txt
./oldboy3/file1.txt
./oldboy3/file2.txt
./oldboy3/file3.txt
./oldboyedu2.txt
./oldboyedu1.txt
./oldboy2/file1.txt
./oldboy2/file2.txt
./oldboy2/file3.txt
./oldboyedu3.txt
(5)查看目录总大小
root@linux [10:42:54] [~]
-> # du -sh .
23M .
root@linux [10:43:15] [~]
-> # du -sh oldboy1
0 oldboy1
2. 查询之后转交其他指令
方法一 xargs
cp 复制
root@linux [10:53:45] [~]
-> # find . -name "oldboyedu1.txt" | xargs -i cp {} /tmp
mv 移动
root@linux [11:00:53] [~]
-> # find . -name "oldboyedu1.txt" | xargs -i mv {} /opt
root@linux [11:01:58] [~]
-> # ls /opt
oldboyedu1.txt
root@linux [11:02:02] [~]
-> # ls
oldboy1 oldboy2 oldboy3 oldboyedu2.txt oldboyedu3.txt
rm 删除
root@linux [11:03:07] [~]
-> # find /opt -name "oldboyedu1.txt" | xargs rm -f
root@linux [11:03:14] [~]
-> # ls /opt
方法二,exec
ls -li
root@linux [11:09:02] [~]
-> # find . -name "1.txt" -exec ls -l {} \;
-rw-r--r-- 1 root root 10 Jul 10 11:08 ./1.txt
root@linux [11:10:05] [~]
-> # find . -name "1.txt" -exec ls -il {} \;
67161037 -rw-r--r-- 1 root root 10 Jul 10 11:08 ./1.txt
cat 查看
root@linux [11:08:45] [~]
-> # find . -name "1.txt" -exec cat {} \;
hahahahah
cp 复制
root@linux [11:07:24] [~]
-> # find . -name "oldboyedu2.txt" -exec cp {} /opt \;
root@linux [11:07:30] [~]
-> # ls /opt
oldboyedu2.txt
mv 移动
root@linux [11:10:45] [~]
-> # find . -name "oldboyedu2.txt" -exec mv {} /opt \;
root@linux [11:11:27] [~]
-> # ls /opt
oldboyedu2.txt
root@linux [11:11:36] [~]
-> # ls
1.txt oldboy1 oldboy2 oldboy3 oldboyedu3.txt
rm 删除
root@linux [11:11:38] [~]
-> # find /opt -name "oldboyedu2.txt" -exec rm {} \;
root@linux [11:12:22] [~]
-> # ls /opt
方法三 `` 和 ()
ll 详细信息
root@linux [11:13:27] [~]
-> # ll `find . -name "1.txt"`
-rw-r--r-- 1 root root 10 Jul 10 11:08 ./1.txt
cp 复制
root@linux [11:13:45] [~]
-> # cp `find . -name "1.txt"` /opt
root@linux [11:14:25] [~]
-> # ls /opt
1.txt
mv 移动
root@linux [11:15:07] [~]
-> # mv `find . -name "1.txt"` /opt
root@linux [11:15:13] [~]
-> # ls /opt .
.:
oldboy1 oldboy2 oldboy3 oldboyedu3.txt
/opt:
1.txt
rm 删除
root@linux [11:15:20] [~]
-> # rm `find /opt -name "1.txt"`
root@linux [11:15:54] [~]
-> # ls /opt .
.:
oldboy1 oldboy2 oldboy3 oldboyedu3.txt
/opt: