生成文件,文件夹
~/Desktop/a$ touch a.txt
touch命令可以生成文件,但不能生成目录。
$ mkdir aa
mkdir用于创建目录。
这样我们可以看到:
~/Desktop/a$ ls
aa a.txt
创建隐藏文件:
$ touch .test
以.开头即可。
删除文件,目录
$ rm a.txt
$ rm -d aa
$ rm -r aa
如果不加参数,rm只能删除文件,加上参数-d或-r之后即可删除目录。但是当目录不为空不能直接删,这个时候需要-rf
rm -rf 可以删除多级目录
文件和文件夹的移动和复制
~/Desktop$ mv test.txt a
在Desktop目录下,将test.txt移动到了a目录。
也可以使用绝对路径移动:
~/Desktop$ mv test.txt /home/Desktop/a
mv不仅可以移动文件,还可以移动目录:
~/Desktop$ mkdir bb
~/Desktop$ mv bb a
使用cp命令进行复制:
$ cp a.txt bb
把a.txt复制到bb文件夹中。
复制目录的时候要用-r指定才行:
~/Desktop$ cp -r a/bb aa
这个命令将a文件夹下bb文件夹复制到了Desktop下的aa文件夹,注意加-r。
如果要剪切、复制到当前目录,把最后的换成.即可:
$ cp a.txt .
~/Desktop$ cp -r a/bb .
移动+改名:
~/Desktop$ mv a/a.txt bb/b.txt
将a下的a.txt移动到bb目录下并改名为b.txt
方向键取得命令
按方向键上可以取得上一条命令,按两次可以取得上上条,以此类推
文件搜索
先来看看我们之前的搜索:
~$ ls 1*.txt
~$ ls 12??.txt
是靠罗列和通配符的筛选,方法上有局限。
按照文件名搜索
更加强大的搜索功能find:
~/Desktop$ find /home -name a.txt
/home/bo/Desktop/aa/a.txt
/home/bo/Desktop/a/a.txt
/home/bo/Desktop/a/bb/a.txt
即find +路径 -name 文件名
注意搜索的时候路径范围一定要尽量精确,否则可能会造成范围没有权限搜索失败的情况
find命令让我们在不知道文件在哪的情况下都可以查找到
注意,*和?依然可以使用,但是文件名最好加上单引号,有的文件名是包含空格,单引号表示整个表达式是一个文件:
$ find /home -name 'a.txt'
$ find /home -name '*.txt'
如果是涉及大小写字母的文件:
$ find /home -iname 'a.txt'
这样就是不区分大小写的搜索。a.txt和A.txt都会被搜索到。
按照文件大小搜索
$ find /home -size +1
$ find 路径 -size 大小
+1就是大于512字节(0.5k)的文件,1就是一个数据块,-1就是小于一个数据块(512字节)
按照文件所属人(当有多个所属人时)和文件类型搜索
$ find /home -user bo
$ find 路径 -user 所属人
$ find /home -type f
$ find /home -type 类型(f/d/l)
文件类型有三种,文件(f)文件夹(d)软链接(l)。
注:可以用条件连接符-a来组合多种条件(option)
$ find /home/Desktop -name '*.txt' -a -user bo -a -type f
这样可以搜索同时三个条件:名字,用户和类型。
还可以通过文件id搜索:
$ ls -li
列出文件id
$ find /home -inum 11890
$ find 路径 -inum id
使用locate搜索
locate搜索速度很快,加上文件名即可把所有带有该名称的文件包括目录找出来
$ locate a.txt
文件内容的查看和搜索
$ cat a.txt
$ cat -n a.txt
$ more a.txt
两种方法,cat是直接将文件内容打印出来,more会有一个新的页面来展示内容。
cat -n可以把行号打印出来
$ grep abc a.txt
$ grep -n abc a.txt
$ grep -v abc a.txt
a.txt中所有含有abc的行都会被打印出来。加上-n还会显示abc在哪一行。-v是反向搜索,搜索不含有abc的行。
搜索有些特殊符号如#最好带上单引号:
$ grep '#' a.txt
硬链接和软链接
Linux链接分两种:
-
硬链接 A–B,假设B是A的硬链接,那么他们两个指向的是同一个文件,也就是允许一个文件拥有多个路径,用户可以通过这个机制将硬链接建立在重要文件上以防误删
-
软链接:类似Windows下的快捷方式,删除原文件,快捷方式也就访问不了了。
创建链接测试,使用ln命令!:
root@:~# touch f1 创建一个f1文件 root@:~# ls f1 snap root@:~# ln f1 f2 创建一个硬链接f2 root@:~# ls f1 f2 snap root@:~# ls -s f1 f3 创建一个软链接f3 ls: cannot access 'f3': No such file or directory 0 f1 root@:~# ln -s f1 f3 root@:~# ls f1 f2 f3 snap root@:~# echo "i love bo" >>f1 向f1中写入字符串 root@:~# ls f1 f2 f3 snap root@:~# cat f1 i love bo root@:~# cat f2 i love bo root@:~# cat f3 i love bo root@:~# rm -rf f1 删除原文件f1 root@:~# ls f2 f3 snap 发现f3变成红色,已经无效 root@:~# cat f2 此时访问f2硬链接还是可以访问到 i love bo cat: f3: No such file or directory f3却不在是文件
由此,备份一定用硬链接,即ln不加参数