一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。、
1、顯示當前工作目錄(CWD:current work directory)
pwd:(printing working directory)顯示當前shell CWD的絕對路徑
pwd -L:顯示鏈接路徑(默認)
-P:顯示真實的物理目錄

列出當前目錄的內容或指定目錄
- ls=’ls –color=auto’
用法: ls [options] [files_or_dirs]
示例:
-
ls -a 顯示所有文件,包括隱藏文件
-
ls -A 顯示除.和..之外的所有文件
-
ls -l =ll,顯示額外的信息
每個文件有三個時間戳:訪問時間(atime)、文件內容修改時間(mtime)、文件元數據改變時間(
ctime)
查看方式:
-
ll –time=ctime(元數據改變時間)
-
ll –time=atime(訪問時間)(mtime用ll便可查看)
-
ls -R(–recursiver) 遞歸列出目錄和文件
-
ls -r (–reverse)將當前目錄下的文件逆序顯示
-
ls -ld 目錄和符號鏈接信息
-
ls -1 文件分行顯示
-
ls –S 按從大到小排序
-
ls –t 按mtime從新到舊排序排序
-
ls –ut 顯示并按atime從新到舊排序
-
ls -ct 顯示并按ctime從新到舊排序
-
ls –U 按目錄存放順序顯示
-
ls –X 按文件后綴排序
-
ls -F 顯示分類
-
ls -lh 將額外信息的文件大小以K、M、G顯示
4、查看文件狀態:stat
文件:metadata, data
文件的三個時間戳:
-
access time:訪問時間,atime,讀取文件內容
-
modify time:修改時間,mtime,改變文件內容(數據)
-
change time:改變時間,ctime,元數據發生改變
5、創建空文件和刷新時間:touch
touch [OPTION]… FILE…
-
-a 僅改變 atime 和ctime
-
-m 僅改變 mtime 和ctime
-
-t [[CC]YY]MMDDhhmm[.ss]:指定atime 和mtime 的時間戳
-
-c 如果文件不存在,則不予創建(刷新時間戳)
eg:創建以f開頭的空文件
6、復制文件和目錄:cp(copy)
-
cp [OPTION]… [-T] SOURCE DEST
-
cp [OPTION]… SOURCE… DIRECTORY
-
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
? ? ?SRC 是文件:
? ? ? ? ? ? ?如果目標不存在:新建DEST,并將SRC 中內容填充至
DEST中如果目標存在:
如果DEST是文件:將SRC 中的內容覆蓋至DEST中
(基于安全,建議為cp 命令使用-i 選項)
如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填至新文件中
cp SRC… DEST
SRC… :多個文件
DEST必須存在,且為目錄,其它情形均會出錯;
cp SRC DEST
SRC 是目錄:此時使用選項:-r
如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST 中;
如果DEST 存在:
如果DEST 是文件:報錯
如果DEST 是目錄:在DEST下新建與原目錄同名的目錄,并將SRC中內容復制至新目錄中
(注:復制成功后,雖然DEST的內容和SRC的一樣,但是元數據不同。若要使DEST的內容和元數據均與SRC一樣,則需要用到cp選項。)
cp常用選項:
-
-i:覆蓋前提示 ? ? –n:不覆蓋,注意兩者順序-ni(注:cp=’cp-i’,所以使用方式為\cp-ni,才會有提示)
-
-r,-R:遞歸復制目錄及內部的所有內容(復制目錄)
-
-a:歸檔,相當于-dR –preserv=all,將SRC的所有屬性同步至DEST。
-
-d:–no-dereference –preserv=links(不復制原文件,只復制鏈接名)
-
–preserv[=ATTR_LIST]
- mode:權限
- ownership:屬主屬組
- timestamp:時間戳
- links:鏈接
- xattr:擴展
- context:上下文
- all
-
-p:等同–preserv=mode,ownership,timestamp
-
-v:–verbose
-
-f:–force
-
-u:–update 只復制源比目標更新文件或目標不存在的文件
-
–backup=numbered 目標存在,覆蓋前先備份加數字后綴
7、移動和重命名文件:mv
-
mv [OPTION]… [-T] SOURCE DEST
-
mv [OPTION]… SOURCE… DIRECTORY
-
mv [OPTION]… -t DIRECTORY SOURCE…
若DEST不存在,SRC是文件,則將SRC移動到目標目錄下,并重命名為DEST。
若DEST為目錄,SRC是文件,則將SRC移動到DEST下。
(mv移動并重命名最多只能對一個文件進行重命名)
常用選項:
- -i:交互式
- -f:強制
8、刪除:rm
rm [OPTION]… FILE…
rm=’rm -i’刪除時提示
常用選項:
-
-i:交互式
-
-f:強制刪除
-
-r:遞歸刪除目錄樹
-
–no-preserve-root,等同于rm -f /*,刪除所有目錄與文件
eg:
1、 刪除當前目錄下內容
2、刪除某目錄下內容
9、目錄操作
(1)tree 顯示目錄樹
-d:只顯示目錄
-L level:指定顯示的層級數目
-P pattern:只顯示由指定pattern匹配到的路徑
(2)mkdir 創建目錄
-p:存在于不報錯,且可自動創建所需的各目錄
-v:顯示詳細信息
-m MODE: 創建目錄時直接指定權限
(3)rmdir 刪除空目錄
-p:遞歸刪除父空目錄
-v:顯示詳細信息
(4)rm -r 遞歸刪除目錄樹
二、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1、bash的工作特性之命令執行狀態返回值
bash通過狀態返回值來輸出此結果:
- 成功:0
失?。?-255命令執行完成后,其狀態返回值保存于bash的特殊變量$?中,可以用echo$?來查看最近一條命令的狀態;
命令正常執行時,有的會有命令返回值;根據命令及其功能不同,結果各不相同。
? ?eg:新建文件touch命令,若是正確的命令,返回值為:0;當輸入為無效命令時,返回值則為:1-255之間
2、命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
三、使用命令行展開功能
1、創建/tmp目錄下的:a_c, a_d, b_c, b_d
2、創建/app/mylinux目錄下的:
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
四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
1、文件的數據分為兩種:一種是描述數據屬性的一類,一種就是數據本身。
2、文件的元數據查看為stat命令,示例如下所示:
其中:
- file(文件):文件名
- size(大小):文件大小
- block(塊):文件占了多少數據塊的塊大小
- IO Block(IO塊):文件所占數據塊的塊大小
- Device(設備):硬件,說明該文件在硬盤的那個柱面
- Inode : 節點號
- links:硬鏈接
- 權限:第一個Access權限,
- Uid : 該文件所屬的屬主,
- Gid : 該文件所屬的屬組
- context(環境): 上下文(發生事情的環境, 背景, 來龍去脈; 前后關系)
- accesstime(最近訪問):文件上一次的訪問時間
- modifytime(最近改動):文件上一次修改的時間
- changetime(最近改動):文件上一次屬性更改的時間
3、修改文件時間戳:touch
格式:touch [OPTION]…FILE…
OPTION:
-
-a:僅改變 atime 和ctime
-
-m:僅改變 mtime 和ctime
-
-t [[CC]YY]MMDDhhmm[.ss]:指定atime 和mtime 的時間戳
五、定義一個命令的別名,并在命令中引用另一個命令的執行結果
查看別名:alias,可查看當前所有別名。
定義別名:alias NAME=’COMMAND’
撤銷別名: unalias NAME
- eg:將touch定義為touch -m,即:改變文件mtime和ctime,然后撤銷別名touch。
六、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
-
~]# ls -d /var/l*[0-9]*[[:lower:]]
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
-
~]# ls -d /etc/[0-9]*[^0-9]
八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
-
~]# ls -d /etc/[^a-Z][a-Z]*
九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
-
~]# touch /app/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/[1mn]*.conf /tmp/mytest3
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102265