歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux文件管理與bash特性

Linux上的文件管理命令

目錄管理命令:

mkdir:make directories
mkdir [OPTION]… DIRECTORY…
-p: 自動按需創建父目錄;
-v: verbose,顯示詳細過程;
-m MODE:直接給定權限;
注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在;

rmdir:remove empty directories
rmdir [OPTION]… DIRECTORY…
-p:刪除某目錄後,如果其父目錄為空,則一並刪除之;
-v: 顯示過程;

文件管理命令

cp命令:copy
   源文件;目標文件;
  單源復制:cp [OPTION]… [-T] SOURCE DEST
  多源復制:cp [OPTION]… SOURCE… DIRECTORY
        cp [OPTION]… -t DIRECTORY SOURCE…
  單源復制:cp [OPTION]… [-T] SOURCE DEST
    如果DEST不存在:則事先創建此文件,並復制源文件的數據流至DEST中;
    如果DEST存在:
      如果DEST是非目錄文件:則覆蓋目標文件;
      如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,並復制其數據流;
  多源復制:cp [OPTION]… SOURCE… DIRECTORY
        cp [OPTION]… -t DIRECTORY SOURCE…
     如果DEST不存在:錯誤;
     如果DEST存在:
       如果DEST是非目錄文件:錯誤;
       如果DEST是目錄文件:分別復制每個文件至目標目錄中,並保持原名;
  常用選項:
     -i:交互式復制,即覆蓋之前提醒用戶確認;
     -f:強制覆蓋目標文件;
     -r, -R:遞歸復制目錄;
     -d:復制符號鏈接文件本身,而非其指向的源文件;
     -a:-dR –preserve=all, archive,用於實現歸檔;
      –preserv=
       mode:權限
       ownership:屬主和屬組
       timestamps: 時間戳
       context:安全標簽
       xattr:擴展屬性
       links:符號鏈接
       all:上述所有屬性

mv命令:move
  mv [OPTION]… [-T] SOURCE DEST
  mv [OPTION]… SOURCE… DIRECTORY
  mv [OPTION]… -t DIRECTORY SOURCE..
  常用選項:
    -i:交互式;
    -f:force

rm命令:remove
  rm [OPTION]… FILE…
  常用選項:
    -i:interactive
    -f:force
    -r: recursive

bash的特性

命令的執行狀態結果
  命令執行的狀態結果:
  bash通過狀態返回值來輸出此結果:
    成功:0
    失敗:1-255
命令行展開
  ~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
  {}:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑;
  
創建/tmp目錄下的:a_c, a_d, b_c, b_d
  touch {a,b}_{c,d}  
創建/tmp/mylinux目錄下的  
  mkdir -pv   /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}}
文件元數據

文件元數據主要包括權限,大小,inode,屬主,屬組,access time, modify time, change time,etc…
文件的元數據可以用stat命令查看。
touch命令可以修改時間戳:
  touch [OPTION]… FILE…
    -c: 指定的文件路徑不存在時不予創建;
    -a: 僅修改access time;
    -m:僅修改modify time;
    -t STAMP
     [[CC]YY]MMDDhhmm[.ss]

命令別名&引用命令的執行結果

可以使用alias name=value形式定義命令別名。

引用命令的執行結果:
  $(COMMAND)
  或`COMMAND`

練習

顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls -ld /var/l*[0-9]*[a-z]

顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls -ld /etc/[0-9]*[^[:digit:]]

顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls -ld /etc/[^[:alpha:]][a-z]*

在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^0-9] /tmp/mytest1/

復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -r /etc/*.d /tmp/mytest2/

復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp -r /etc/[lmn]*.conf /tmp/mytest3/

Copyright © Linux教程網 All Rights Reserved