常用的文件管理命令:
-
ls,顯示文件或目錄
-
-l:顯示文件或目錄的包括權限、屬主、屬組大小創建日期等詳細信息
-
[root@centos7 ~]# ls -l total 16 -rw-r--r--. 1 root root 64 Aug 27 18:33 11 -rw-r--r--. 1 root root 63 Aug 27 17:54 22 -rw-------. 1 root root 1242 Jul 29 17:51 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Aug 21 00:45 Desktop drwxr-xr-x. 2 root root 6 Aug 21 00:45 Documents drwxr-xr-x. 2 root root 6 Aug 21 00:45 Downloads
-
-a:顯示所有文件,-A:顯示所有文件但不包過. ..
-
-d:顯示目錄本身而非目錄下的文件,一般配合-l使用
-
[root@centos7 ~]# ls Desktop mytest.out [root@centos7 ~]# ls -dl Desktop drwxr-xr-x. 2 root root 23 Sep 5 17:07 Desktop
-
-h:配合 -l ,以K、M、G等方式顯示文件大小,更易讀,但文件大小不精確
-
-r:逆序顯示,-R:遞歸顯示
-
cp,復制文件
-
-i:覆蓋交互提示
-
-r:遞歸復制
-
-f:強制覆蓋
-
單源復制
-
[root@centos7 tmp]# cp test1.pic testdir
-
多源復制
-
[root@centos7 tmp]# cp testscr.pic testusb.pic testdir
-
目錄復制
-
[root@centos7 tmp]# cp -rf cups testdir [root@centos7 tmp]# ls testdir cups
-
mv:移動文件或改名,用法類似cp
-
[root@centos7 tmp]# mv test1.pic testdir [root@centos7 tmp]# mv testscr.pic testpic
-
rm:刪除文件或目錄,用法類似cp
-
-r:遞歸刪除,慎用
-
-f:強制刪除
-
-d:刪除空目錄
-
mkdir:創建文件夾
-
-p:如要創建的目標目錄的父目錄不存在,則自動為其創建
-
[root@centos7 tmp]# mkdir -pv d1/d2/d3
-
touch:創建空文件或修改文件時間戳
-
-c:目標文件不存在時,不予創建文件
-
-a:修改Access time
-
-m:修改Modify time
-
-t:指定時間
-
pwd:顯示當前路徑
-
cd:切換目錄
-
cd ~:切換回家目錄
-
cd -:上次和本次的目錄來回切換
bash特性之命令狀態返回值
linux命令有2種結果狀態,一種是命令結果輸出,一種是命令執行狀態
如需要顯示/tmp目錄下的內容:
[root@centos7 ~]# ls /tmp cups d1 t1 t2 testdir testpic testusb.pic
如只需要知道 testpic文件是否存在,而不需要顯示任何信息:
[root@centos7 tmp]# ls testpic &> /dev/null [root@centos7 tmp]# echo $? 0
將命令執行結果(和錯誤信息)重定向至linux黑洞/dev/null,不讓其顯示任何信息
通過echo $?來檢測命令是否執行成功,$?保存了上條命令的執行狀態值
0:執行成功
非0:失敗
bash特性之命令行展開
創建/tmp下的a、b、c,
一般為mkdir /tmp/a /tmp/b /tmp/c;
如用命令行展開特性則是
mkdir /tmp{a,b,c},相當于mkdir /tmp/a /tmp/b /tmp/c
練習:
1、創建a_c,a_d,b_c,b_d
[root@centos7 t1]# mkdir -pv {a,b}_{c,d} mkdir: created directory ‘a_c’ mkdir: created directory ‘a_d’ mkdir: created directory ‘b_c’ mkdir: created directory ‘b_d’
2、創建/tmp/mylinux下的若干目錄
[root@centos7 ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} [root@centos7 ~]# tree /tmp/mylinux /tmp/mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run 24 directories, 0 files
文件元數據
[root@centos7 ~]# stat 11 File: ‘11’ Size: 64 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 138944011 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2016-08-27 18:33:45.928314700 +0800 Modify: 2016-08-27 18:33:36.369314412 +0800 Change: 2016-08-27 18:33:36.369314412 +0800 Birth: -
文件名、大小、屬主、屬組,時間戳等等
用touch修改 Access、Modify、Change時間
命令別名 alias
顯示別名alias
設置別名:
[root@centos7 ~]# alias chkver='uname -a' [root@centos7 ~]# chkver Linux centos7 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
刪除別名:unalias chkver
[root@centos7 ~]# unalias chkver [root@centos7 ~]# chkver bash: chkver: command not found...
引用一個命令的執行結果
·· 和 $(cmd)
[root@centos7 ~]# mkdir $(date "+%Y-%m-%d-%T")
練習:
-
顯示/var下所有以l開頭,以一個小寫字母結尾,且中間至少出現1位數字(可以有其他字符)的目錄或文件
-
顯示/etc下,以任意1個數字開頭,且以非數字結尾的文件或目錄
-
顯示/etc下以非字母開頭,后跟了一個字母及其他任意長度任意字符的文件或目錄
-
在/tmp下創建以tfile開頭,后面跟當前日期和時間的文件
-
復制/etc下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1
復制/etc下所有以.d結尾的文件到/tmp/mytest2
復制/etc下所有以l或m或n開頭,以.conf結尾的文件到/tmp/mytest3
[root@centos7 ~]# ls -d /var/l*[0-9]*[a-z]
[root@centos7 ~]# ls /etc/[0-9]*[^0-9]
[root@centos7 ~]# ls /etc/[^a-z][a-z]*
[root@centos7 ~]# mkdir $(date "+%Y-%m-%d-%T")
[root@centos7 tmp]# mkdir -pv mytest{1,2,3} mkdir: created directory ‘mytest1’ mkdir: created directory ‘mytest2’ mkdir: created directory ‘mytest3’ [root@centos7 tmp]# cp -rf /etc/p*[^0-9] mytest1 [root@centos7 tmp]# cp -rf /etc/*.d mytest2 [root@centos7 tmp]# cp -rf /etc/[l,m,n]*.conf mytest3
原創文章,作者:ryanhp,如若轉載,請注明出處:http://www.www58058.com/43741