标签:
目录和文件操作命令
1.目录的增删查改
C 增 
mkdir 新建目录  可以同时创建多个目录  
如果需要直接赋予权限 -m 参数 
mkdir-m=r– letter 
上面的命令会创建一个名为 letter 的目录,同时为目录所有者、用户组和其他用户针对该目录赋予只读权限 
创建的时候想看到信息需要 -v 参数  这样就可以看到linux是怎么创建目录的 
$ mkdir-v ubuntu redhat slackware 
man mkdir或mkdir –help来显示 mkdir 的手册页面
U 改 
重命名文件或目录
我们也用 mv 命令来重命名文件或目录 不过目标位置和源位置必须相同才可以。然后文件名必须不同。 想看看详情就加-v 记住了哦 一般都是这个参数看详情 
R 看 
cd 目录名  进入到某个目录  
cd / 根目录 
cd ~ 回到家目录 
cd .. 或者 cd ../ 回到上级目录 
ll 查看 
cd - 回到上次操作的目录 
pwd 显示当前所在的绝对对路径 
D 删 
-r 就是向下递归,不管有多少级目录,一并删除   -f 就是直接强行删除,不作任何提示的意思  -v 显示linux删除文件的步骤  -i 既有文件或目录之前先询问用户。 
rm 文件名 会询问是否删除 
rm -f 文件名  会强制删除 但是不递归 
rm -rf   目录名字  不带提示 直接强制删除 
使用这个rm -rf的时候一定要格外小心,linux没有回收站的 
自定义回收站功能 
 myrm(){ D=/tmp/
M(移动+重命名) 老婆 这个目录既可以移动目录也可以直接重命名哦
不同于复制命令,用 mv 命令移动目录相当直接    就一个命令简单吧   想看看详情就加-v 记住了哦 一般都是这个参数看详情 
移动目录
当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件。对于mv的这一行为一般不会有什么提示。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项。
假设我们想将 file_1.txt 移动到 /home/pungki/office。同时,/home/pungki/office 目录下已经有file_1.txt文件了。加上-i 就会产生提示哦(是否要覆盖) 
如果-i选项询问我们是否要覆盖文件,那么 -n 选项将不会允许我们覆盖任何已存在的文件。 
$ mv-i file_1.txt /home/pungki/office
默认情况下,移动文件将会覆盖已存在的目标文件。但是如果我们移动错了文件而目标文件已经被新的文件覆盖了,这时应该怎么办才好呢?有没有一种方法可以恢复之前的文件呢?答案是肯定的。我们可以用-b选项。该选项会在新文件覆盖旧文件时将旧文件做备份。 
$ mv-bv *.txt /home/pungki/office
移动的文件以波浪符号(~)结尾
当你希望无论如何都覆盖已经存在的文件或目录时,你可以使用 -f 选项。如果同时指定了 -f 选项和 -i 或 -n 选项,则 -f 选项会覆盖它们——即不进行任何提示而覆盖,所以,在使用此参数时,知道你在做什么。 
$ mv-f *.txt /home/pungki/office
L(建立软连接 就是建立Windows上的快捷方式一样)
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。 例如:ln –s /bin/less /usr/local/bin/less 
-s 是代号(symbolic)的意思。
软链接: 
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 
2.软链接可以 跨文件系统 ,硬链接不可以 
3.软链接可以对一个不存在的文件名进行链接 
4.软链接可以对目录进行链接 
硬链接: 
1.硬链接,以文件副本的形式存在。但不占用实际空间。 
2.不允许给目录创建硬链接 
3.硬链接只有在同一个文件系统中才能创建
-b 删除,覆盖以前建立的链接 
-d 允许超级用户制作目录的硬链接 
-f 强制执行 
-i 交互模式,文件存在则提示用户是否覆盖 
-n 把符号链接视为一般目录 
-s 软链接(符号链接) 
-v 显示详细的处理过程 
实例1:给文件创建软链接 
[root@localhost test]# ll 
-rw-r–r– 1 root bin      61 11-13 06:03 log2013.log 
[root@localhost test]# ln -s log2013.log link2013 
[root@localhost test]# ll 
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log 
-rw-r–r– 1 root bin      61 11-13 06:03 log2013.log 
说明: 
为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
实例2:给文件创建硬链接 
命令: 
ln log2013.log ln2013 
输出: 
[root@localhost test]# ll 
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log 
-rw-r–r– 1 root bin      61 11-13 06:03 log2013.log 
[root@localhost test]# ln log2013.log ln2013 
[root@localhost test]# ll 
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log 
-rw-r–r– 2 root bin      61 11-13 06:03 ln2013 
-rw-r–r– 2 root bin      61 11-13 06:03 log2013.log 
说明: 
为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
[root@localhost test5]# ln -sv /opt/soft/test/test3 /opt/soft/test/test5 
创建指向“/opt/soft/test/test3”的符号链接“/opt/soft/test/test5/test3” 
说明: 
1.目录只能创建软链接 
2.目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误 
3.在链接目标目录中修改文件都会在源文件目录中同步变化
其他关于目录的命令 
通过man mv 或者 mv –help显示mv的手册页 
ls -lrt l表示显示详细列表,-t表示按时间排序,-r反向排序 
pwd显示当前路径; 
du 统计文件大小相加  
df  统计数据块使用情况 
统计总数大小 
du -sh xmldb/ 
du -sm * | sort -n //统计当前目录大小 并安大小 排序 
du -sk * | sort -n 
du -sk * | grep guojf //看一个人的大小 
du -m | cut -d “/” -f 2 //看第二个/ 字符前的文字 
查看此文件夹有多少文件 ///* 有多少文件 
du xmldb/ 
du xmldb///* |wc -l 
 40752 
 解释: 
wc [-lmw] 
参数说明: 
-l :多少行 
-m:多少字符 
-w:多少字
关于文件的命令
C (新建文件) 
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。 
vim 老婆.txt    这样就建立好了 
echo “我爱你老婆”> 老婆.txt    这样也可以吧内容写进去 
touch 老婆是笨蛋.txt      也可以建立好 但是没有直接打开编辑窗口哦
R (移动 + 重命名) 
这里是重命名文件哦
假定我们当前所在目录为/home/pungki/Documents,而我们想将file_1.txt重命名为file_2.txt。 
1.移动文件
移动文件时需要注意的是文件的源地址和目标地址必须不同 
想要将file_1.txt文件从当前目录移动到其它目录,以/home/pungki/为例 
$ mv file_1.txt /home/pungki/office 
移动 file_1.txt 文件时,先前目录的 file_1.txt 就被删除了 
2.移动多个文件
如果想一次移动多个文件,我们可以将他们放在一行并用空格分开。 
$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office
移除所有以.txt为扩展名的文件,我们可以用下面的命令 
$ mv *.txt /home/pungki/office
查看文件内容 
cat 查看文件内容实例; 
[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容; 
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始; 
[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示; 
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;
more 的参数应用举例;  
[root@localhost ~]# more -dc /etc/profile 注:显示提示,并从终端或控制台顶部显示; 
[root@localhost ~]# more +4 /etc/profile 注:从profile的第4行开始显示; 
[root@localhost ~]# more -4 /etc/profile 注:每屏显示4行; 
[root@localhost ~]# more +/MAIL /etc/profile 注:从profile中的第一个MAIL单词的前两行开始显示; 
Enter 向下n行,需要定义,默认为1行; 
Ctrl+f 向下滚动一屏; 
空格键 向下滚动一屏;Ctrl+b 返回上一屏; 
= 输出当前行的行号; 
:f 输出文件名和当前行的行号;
less的动作命令 
q,这个能让less终止查看文件退出 
回车键 向下移动一行; 
y 向上移动一行; 
空格键 向下滚动一屏; 
b 向上滚动一屏; 
d 向下滚动半屏; 
h less的帮助; 
u 向上洋动半屏; 
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示; 
g 跳到第一行; 
G 跳到最后一行; 
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示; 
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词; 
?pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词; 
v 调用vi编辑器;直接跳到编辑页面 然后你就可以编辑了
head -n 行数值 文件名; 
比如我们显示/etc/profile的前10行内容,应该是: 
[root@localhost ~]# head -n 10 /etc/profile
tail 工具,显示文件内容的最后几行; 
tail 是显示一个文件的内容的前多少行; 
用法比较简单; 
tail -n 行数值 文件名; 
比如我们显示/etc/profile的最后5行内容,应该是: 
[root@localhost ~]# tail -n 5 /etc/profile
还有一个就是tail -f 文件名  这样就会一直监听这个文件  退出Ctrl+c    看日志的时候回经常用 
-f 该参数用于监视File文件增长。 
-c Number 从 Number 字节位置读取指定文件 
-n Number 从 Number 行位置读取指定文件。 
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。 
-b Number 从 Number 表示的512字节块位置读取指定文件。 
-k Number 从 Number 表示的1KB块位置读取指定文件。
tail -f filename 
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
tail -f filename 
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
tail -r -n 10 filename 
说明:逆序显示filename最后10行。
这样要主要看看 
平常都是使用ssh来进行远程操作和传输文件 , 这个工具可以很方便的实现我们所需要的功能,一直使用正常,没遇到什么问题,今天因为需要传一个412M的文件 , 无论如何也传不过来, 一直系统报错。无奈之下GOOGLE了一下,发现可以使用split命令来切割文件,以方便进行文件传输。 
[root@localhost database]# ls  -lh gkdb.db 
-r–r–r–    1 root     root         411M Jul 23 17:20 gkdb.db 
将将这个276M文件分割成20M的小文件,文件分割操作如下: 
[root@localhost database]# split  -b  20m  gkdb.db   gkdb_pack_ 
split 是命今。 
-B  20M  是指将每个分卷文件最大20M 。 
gkdb.db   需要分割的文件。 
gkdb_pack_  是指分割后的文件开头, 分割后后的文件名一般为   gkdb_pack_aa、gkdb_pack_ab、gkdb_pack_ac依次类推。 
 显示分割后的文件名及大小 
[root@localhost database]# ll -lh  gkdb_pack_a* 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_aa 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ab 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ac 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ad 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ae 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_af 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ag 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ah 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ai 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_aj 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ak 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_al 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_am 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_an 
-rw-r–r–    1 root     root          20M Jul 27 16:09 gkdb_pack_ao 
-rw-r–r–    1 root     root          20M Jul 27 16:10 gkdb_pack_ap 
-rw-r–r–    1 root     root          20M Jul 27 16:10 gkdb_pack_aq 
-rw-r–r–    1 root     root          20M Jul 27 16:10 gkdb_pack_ar 
-rw-r–r–    1 root     root          20M Jul 27 16:10 gkdb_pack_as 
-rw-r–r–    1 root     root          20M Jul 27 16:10 gkdb_pack_at 
-rw-r–r–    1 root     root          11M Jul 27 16:10 gkdb_pack_au 
最下面的那个文件是剩余的文件。  20*20+11=411MB 
合并文件 
[root@localhost database]# cat  gkdb_pack_*>gkdb.tar.gz
组装前和组装后的MD5值都是一样的,不信的话可以使用md5sum命令来检测一下。
如果要分割的是一个文本文件,比如有好几千行,当然每行的字符数是不等的,想要以行数为分割,比如每100行生成1个文件,只需要 -l 参数,如下: 
[root@pps public_rw]# split -l 100 test.txt
其实,如果不加任何参数,默认情况下是以1000行大小来分割的。
标签:
原文地址:http://blog.csdn.net/pangchengyong0724/article/details/51919266