码迷,mamicode.com
首页 > 其他好文 > 详细

文件管理命令

时间:2017-11-26 21:50:44      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:linux文件

1、显示当前工作目录

[root@centos7 ~]#cd /bin                                     
[root@centos7 bin]#pwd                                 

/bin
[root@centos7 bin]#pwd -P                                    
/usr/bin
[root@centos7 bin]#ll /bin                                                    
lrwxrwxrwx. 1 root root 7 Jul 14 11:16 /bin -> usr/bin                     

如果当前工作目录是一个软连接目录,则pwd默认当前目录是软连接的目录,加上P就显示软连接源文件的目录。

2ls 命令

*ls命令默认数字排在字母的前面
*显示软连接目录和普通目录的区别-------如果ll显示一般目录加/和不加没有什么区别,但对于软连接目录,加/代表软连接的源目录,不加代表软连目录。
-d
代表只显示目录,不递归进入子目录。
加上-d显示的是源文件的bin

root@centos7 ~]#ll -d /bin

 lrwxrwxrwx. 1 root root 7 Jul 14 11:16 /bin -> usr/bin [root@centos7 ~]#ll -d /bin/

 dr-xr-xr-x. 2 root root 45056 Jul 18 07:58 /bin/

 

 

3、文件通配符
v*
匹配零个或多个字符
v?
匹配任何单个字符
v~
当前用户家目录
v~mage
用户mage家目录
v~+
当前工作目录
v~-
前一个工作目录
v[0-9]
匹配数字范围
v[a-z]
:字母
v[A-Z]
:字母
v[wang]
匹配列表中的任何的一个字符
v[^wang]
匹配列表中的所有字符以外的字符
v[:digit:]
:任意数字,相当于0-9
v[:lower:]
:任意小写字母
v[:upper:]:
任意大写字母
v[:alpha:]:
任意大小写字母
v[:alnum:]
:任意数字或字母
v[:blank:]
:水平空白字符
v[:space:]
:水平或垂直空白字符
v[:punct:]
:标点符号
v[:print:]
:可打印字符
v[:cntrl:]
:控制(非打印)字符
v[:graph:]
:图形字符
v[:xdigit:]
:十六进制字符

大小写字母的说明
[root@centos6 app]#t
ouch f{a..c}
[root@centos6 app]#ls
fa  fb  fc
[root@centos6 app]#touch f{A..C}
[root@centos6 app]#ls
fa  fA  fb  fB  fc  fC
[root@centos6 app]#ll f[a-c]
-rw-r--r--. 1 root root 0 Jul 20 08:09 fa
-rw-r--r--. 1 root root 0 Jul 20 08:09 fA
-rw-r--r--. 1 root root 0 Jul 20 08:09 fb
-rw-r--r--. 1 root root 0 Jul 20 08:09 fB
-rw-r--r--. 1 root root 0 Jul 20 08:09 fc
[root@centos6 app]#ll f[A-C]
-rw-r--r--. 1 root root 0 Jul 20 08:09 fA
-rw-r--r--. 1 root root 0 Jul 20 08:09 fb
-rw-r--r--. 1 root root 0 Jul 20 08:09 fB
-rw-r--r--. 1 root root 0 Jul 20 08:09 fc
-rw-r--r--. 1 root root 0 Jul 20 08:09 fC
总结:[a-c][A-C]代表大小写字母,并且从并且小写字母在前.
4
touch命令

*touch创建空文件和>>>的区别
>
创建空文件,如果文件存在,则会把文件情况,比较危险
touch
创建空文件,如果文件存在,则会更改文件的时间戳
>>
创建空文件,如果文件存在,则不改变文件内容也不改变时间戳,是最安全的创建空文件
touch
可以创建多个空文件

*指定时间戳
[root@centos6 app]#touch -t 201810201230.20 f3
[root@centos6 app]#stat f3
File: `f3'
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 13          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-10-20 12:30:20.000000000 +0800
Modify: 2018-10-20 12:30:20.000000000 +0800
Change: 2017-07-19 20:27:22.629271264 +0800

stat命令看时间戳

5cp命令

*cp在复制的时候可能会丢失一些源数据
[root@centos6 app]#cp /etc/issue /app/xxx
[root@centos6 app]#ll !*
ll /etc/issue /app/xxx
-rw-r--r--. 1 root root 55 Jul 19 20:30 /app/xxx #
时间戳没变
-rw-r--r--. 1 root root 55 Jul 15 20:56 /etc/issue
为了避免丢失源数据,可以使用-a进行备份,-p 保留权限,所有者和时间戳, --preserv=all 保留所有源数据

*cp复制软连接文件

[root@centos7 ~]#ll /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Jul 14 11:20 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[root@centos7 ~]#cp /etc/grub2.cfg /app
[root@centos7 ~]#ll /app
total 24
-rw-r--r--. 1 root root 5275 Jul 18 10:49 cmd.log
-rw-r--r--. 1 root root 4215 Jul 19 20:47 grub2.cfg#
复制的是软连接指向的源文件
drwxr-xr-x. 2 root root  230 Jul 19 18:52 music
-rwxr-xr-x. 1 root root  271 Jul 19 19:13 music.sh
-rw-r--r--. 1 root root  384 Jul 18 10:49 time.log
cp
复制软连接文件时复制的是软连接指向的源文件,可以用-P选项,不跟随软连接源。

*cp复制特殊文件
[root@centos6 app]#cp -a /dev/sda1 /app
[root@centos6 app]#ll
total 4
prw-r--r--. 1 root root    0 Jul 19 18:58 f1
srwxr-xr-x. 1 root root    0 Jul 19 19:02 f2
-rw-r--r--. 1 root root    0 Oct 20  2018 f3
brw-rw----. 1 root disk 8, 1 Jul 19 07:33 sda1 #
属性相同
-rw-r--r--. 1 root root   55 Jul 19 20:30 xxx
[root@centos6 app]#ll /dev/sda1
brw-rw----. 1 root disk 8, 1 Jul 19 07:33 /dev/sda1 #
属性相同
[root@centos6 app]#cp -a /dev/zero /app
[root@centos6 app]#ll
total 4
prw-r--r--. 1 root root    0 Jul 19 18:58 f1
srwxr-xr-x. 1 root root    0 Jul 19 19:02 f2
-rw-r--r--. 1 root root    0 Oct 20  2018 f3
brw-rw----. 1 root disk 8, 1 Jul 19 07:33 sda1
-rw-r--r--. 1 root root   55 Jul 19 20:30 xxx
crw-rw-rw-. 1 root root 1, 5 Jul 19 07:33 zero  #
属性相同
[root@centos6 app]#ll /dev/zero
crw-rw-rw-. 1 root root 1, 5 Jul 19 07:33 /dev/zero   #
属性相同
cp
命令在复制/dev/sda1/dev/zero 这些特殊文件时,要保留属性,否则无法使用。

*rename批量修改文件名
[root@centos6 app]#touch f{1,2,3}.txt
[root@centos6 app]#ll
total 4
prw-r--r--. 1 root root    0 Jul 19 18:58 f1
-rw-r--r--. 1 root root    0 Jul 19 21:06 f1.txt
srwxr-xr-x. 1 root root    0 Jul 19 19:02 f2
-rw-r--r--. 1 root root    0 Jul 19 21:06 f2.txt
-rw-r--r--. 1 root root    0 Oct 20  2018 f3
-rw-r--r--. 1 root root    0 Jul 19 21:06 f3.txt
brw-rw----. 1 root disk 8, 1 Jul 19 07:33 sda1
-rw-r--r--. 1 root root   55 Jul 19 20:30 xxx
crw-rw-rw-. 1 root root 1, 5 Jul 19 07:33 zero
[root@centos6 app]#rename '.txt' '.txt.bak' *.txt    #
将所有的以.txt结尾的文件,将.txt格式改为.txt.bak格式
[root@centos6 app]#ll
total 4
prw-r--r--. 1 root root    0 Jul 19 18:58 f1
-rw-r--r--. 1 root root    0 Jul 19 21:06 f1.txt.bak
srwxr-xr-x. 1 root root    0 Jul 19 19:02 f2
-rw-r--r--. 1 root root    0 Jul 19 21:06 f2.txt.bak
-rw-r--r--. 1 root root    0 Oct 20  2018 f3
-rw-r--r--. 1 root root    0 Jul 19 21:06 f3.txt.bak
brw-rw----. 1 root disk 8, 1 Jul 19 07:33 sda1
-rw-r--r--. 1 root root   55 Jul 19 20:30 xxx
crw-rw-rw-. 1 root root 1, 5 Jul 19 07:33 zero
6
rm命令
选项 -r 递归,删除目录 -f 不提示,直接删除;-i 提示

*rm命令删除一个大文件技巧
rm
删除一个大文件时,如果文件正在使用,即使删除了这个大文件,磁盘空间也无法释放,为了让磁盘空间尽快释放,可以先用> 清空这个文件,再用rm删除这个文件,就可以马上释放磁盘空间。
-
如何安全的删除一个文件,可以使用如下命令
[root@centos6 app]#shred -zuvn5 f3

#shred相当于碎纸机,z清理;v过程可见;n5重复五次;u最后把文件删除

 shred: f3: pass 1/6 (random)... shred: f3: pass 2/6 (ffffff)... shred: f3: pass 3/6 (random)... shred: f3: pass 4/6 (000000)... shred: f3: pass 5/6 (random)... shred: f3: pass 6/6 (000000)... shred: f3: removing shred: f3: renamed to 00 shred: 00: renamed to 0 shred: f3: removed

*rm删除点打头的文件
[root@centos6 app]#touch .a
[root@centos6 app]#ls -a
.  ..  .a  f1  f1.txt.bak  f2  f2.txt.bak  f3.txt.bak  sda1  xxx  zero
[root@centos6 app]#rm -f *   #
不能删除点打头的文件
[root@centos6 app]#ls -a
.  ..  .a  #
点打头的文件还在
[root@centos6 app]#rm -f .*  #
执行这条命令才能删除点打头的文件
[root@centos6 app]#ls -a
.  ..

*rm删除目录
[root@centos6 app]#mkdir f1 [root@centos6 app]#ls f1 [root@centos6 app]#rm -rf /app #
提示要把目录也删除,但/app是个分区挂载点,无法删除,只把目录里的内容删除 rm: cannot remove `/app': Device or resource busy [root@centos6 app]#ls [root@centos6 app]#mkdir f1 [root@centos6 app]#ls f1 [root@centos6 app]#rm -rf /app/* #不提示删除/app [root@centos6 app]#ls
总结:分区挂载点无法删除,要想删除一个目录下的文件而不删除目录的写法为rm -rf /D/* ,如果rm     -rf /D 则会连目录也删除。
7
tree命令

[root@centos6 app]#tree
.
├── f1
├── f1.txt.bak
├── f2
├── f2.txt.bak
├── f3.txt.bak
├── sda1
├── xxx
└── zero

0 directories, 8 files
[root@centos6 app]#tree -d #
只显示目录
.

0 directories
[root@centos6 app]#tree -L 1#
只显示/app下的一级目录
.
├── f1
├── f1.txt.bak
├── f2
├── f2.txt.bak
├── f3.txt.bak
├── sda1
├── xxx
└── zero

0 directories, 8 files

8mv命令

格式1mv 文件 文件

修改文件名

格式2mv 文件/目录1 目录2

移动文件/目录1 到目录2

mv目录的时候,只能是在同一设备/媒体之间。

如果是从/dev/sda1移动到 /dev/sdb1 ,则不行。只能是先拷贝过去,再删除。

 

9file命令

file 命令用来判断文件类型,主要是查看文件头部的magic number来判断.

[root@zab ~]# file /bin/cat

/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNULinux 2.6.18

  file -f filetxt 批量查看

  file -L 查看软连接对应文件的类型

 

10.查看文件状态stat命令

[root@zab home]# stat /tmp

  File: `/tmp'

  Size: 4096              Blocks: 8          IO Block: 4096   directory

Device: 802h/2050d        Inode: 2490369     Links: 35

Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-07-24 08:06:10.000000000 +0800

Modify: 2017-07-24 14:35:39.615977800 +0800

Change: 2017-07-24 14:35:39.615977800 +0800

显示文件的大小 权限 时间戳 节点号等状态


文件管理命令

标签:linux文件

原文地址:http://blog.51cto.com/13157015/2044455

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!