1.Linux上的文件管理命令有哪些,其常用的使用方法及其相關事例演示
cp命令
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。 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是目錄:
語法
cp (選項) (參數)
選項
-i:交互式 -r, -R: 遞歸復制目錄及內部的所有內容; -a: 歸檔,相當于-dR --preserv=all -d:--no-dereference --preserv=links --preserv[=ATTR_LIST] mode: 權限 ownership: 屬主屬組 timestamp: links xattr context all -p: --preserv=mode,ownership,timestamp -v: --verbose -f: --force
參數
-
SRC 源文件
-
DEST 目標文件
實例
將/etc/fstab
復制到/root/Desktop
,且目標文件已存在
[root@hadoop Desktop]# cp /etc/fstab ./ cp: overwrite `./fstab'?
將/root/Desktop/repo
目錄下的所有文件復制到/root/Desktop/test
目錄下,且目標文件目錄不存在
[root@hadoop Desktop]# ls fstab passwd repo scripts [root@hadoop Desktop]# cp -r ./repo/ ./test/ [root@hadoop Desktop]# ls fstab passwd repo scripts test
將/root/Desktop
下的文件fstab
passwd
復制到/root/Desktop/test
[root@hadoop Desktop]# cp passwd fstab ./test
將/root/Desktop/fstab
復制為cptest
[root@hadoop Desktop]# cp fstab cptest
將/root/Desktop/test
下的所有文件復制到/root/Desktop/test2
[root@hadoop Desktop]# ll ./test/ total 24 -rw-r--r--. 1 root root 1926 Jul 11 19:32 CentOS-Base.repo -rw-r--r--. 1 root root 638 Jul 11 19:32 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 653 Jul 11 19:32 CentOS-Media.repo -rw-r--r--. 1 root root 3664 Jul 11 19:32 CentOS-Vault.repo -rw-r--r--. 1 root root 779 Jul 11 19:37 fstab -rw-r--r--. 1 root root 1660 Jul 11 19:37 passwd [root@hadoop Desktop]# cp -r -a ./test/ ./test1/ [root@hadoop Desktop]# ll ./test1/ total 24 -rw-r--r--. 1 root root 1926 Jul 11 19:32 CentOS-Base.repo -rw-r--r--. 1 root root 638 Jul 11 19:32 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 653 Jul 11 19:32 CentOS-Media.repo -rw-r--r--. 1 root root 3664 Jul 11 19:32 CentOS-Vault.repo -rw-r--r--. 1 root root 779 Jul 11 19:37 fstab -rw-r--r--. 1 root root 1660 Jul 11 19:37 passwd
mv命令
mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄。
語法
mv (選項) (參數)
選項
-i: 交互式 -f: 強制
參數
-
SRC 源文件
-
DEST 目標文件
實例
將/root/Desktop/fstab
改名為mvtest
[root@hadoop Desktop]# mv -i fstab mvtest
將/root/Desktop/test1
移到./test2
[root@hadoop Desktop]# mv ./test1/ ./test2/
rm命令
rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。
語法
rm (選項)(參數)
選項
-i: 交互式 -f: 強制刪除 -r: 遞歸
實例
刪除/root/Desktop/
目錄下的fstab
和'passwd'
[root@hadoop Desktop]# rm -i ./fstab passwd rm: remove regular file `./fstab'? y rm: remove regular file `passwd'? y
刪除/root/Desktop/test2
下的所有文件
[root@hadoop Desktop]# rm -rf ./test2
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其演示實例
命令的執行結果狀態
成功 失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果:
0:成功 1-255:失敗
實例
[root@hadoop Desktop]# ls cptest repo scripts test [root@hadoop Desktop]# echo $? 0 [root@hadoop Desktop]# ls ./aaa ls: cannot access ./aaa: No such file or directory [root@hadoop Desktop]# echo $? 2
命令行展開
~: 展開為用戶的主目錄 ~USERNAME:展開為指定用戶的主目錄 {}:可承載一個以逗號分隔的列表,并將其展開為多個路徑 /tmp/{a,b} = /tmp/a, /tmp/b /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
實例
~展開: [root@hadoop Desktop]# pwd /root/Desktop [root@hadoop Desktop]# cd ~ [root@hadoop ~]# pwd /root {}展開: [root@hadoop ~]# mkdir -pv /tmp/{a,b} mkdir: created directory `/tmp/a' mkdir: created directory `/tmp/b'
3.請使用命令行展開功能來完成以下練習:
(1).創建/tmp
目錄下的a_c
,a_d
,b_c
,b_d
[root@hadoop ~]# mkdir -pv /tmp/{a,b}_{c,d} mkdir: created directory `/tmp/a_c' mkdir: created directory `/tmp/a_d' mkdir: created directory `/tmp/b_c' mkdir: created directory `/tmp/b_d'
(2).創建/tmp/mylinux
目錄下的一系列目錄
[root@hadoop tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc/sbin,sys,tmp,usr/{bin,sbin},var/{lock,log,run}} [root@hadoop tmp]# 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 │ ├── bin │ └── sbin └── var ├── lock ├── log └── run
4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
元數據信息
[root@hadoop Desktop]# ls -l /etc/fstab -rw-r--r--. 1 root root 779 Feb 1 15:55 /etc/fstab -rw-r--r--共有10個小段 第一小段代表的文件類型: -(f):普通文件 d:目錄文件 b:塊設備文件 c:字符設備 l:符號連接 p:管道文件 s:套接字文件 rw-表示用戶的權限,r--表示所屬組的權限,r--表示其他用戶的權限。 r:只讀權限 w:可寫權限 x:執行權限 之后是文件的屬主、屬組、文件大小以及最后的訪問時間。
時間戳
查看時間戳:stat命令 [root@hadoop Desktop]# stat /etc/fstab File: `/etc/fstab' Size: 779 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 390920 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-12 20:04:45.884000013 +0800 Modify: 2016-02-01 15:55:40.477000176 +0800 Change: 2016-02-01 16:08:05.655000177 +0800 三個時間戳: access time:訪問時間,簡寫為atime,讀取文件內容 modify time: 修改時間, mtime,改變文件內容(數據) change time: 改變時間, ctime,元數據發生改變 修改時間戳:touch命令 touch (選項) (參數) 選項: -a: only atime -m: only mtime -t STAMP [root@hadoop Desktop]# touch -t 1607112004.45 /etc/fstab [root@hadoop Desktop]# stat /etc/fstab File: `/etc/fstab' Size: 779 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 390920 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-12 20:59:12.348000443 +0800 Modify: 2016-07-11 20:04:45.000000000 +0800 Change: 2016-07-12 20:59:10.128998636 +0800
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
命令別名(alias)
通過alias命令實現: (1) alias 顯示當前shell進程所有可用的命令別名; (2) alias NAME='VALUE' 定義別名NAME,其相當于執行命令VALUE; 注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中; 僅對當前用戶:~/.bashrc 對所有用戶有效:/etc/bashrc Note: 編輯配置給出的新配置不會立即生效; bash進程重新讀取配置文件: source /path/to/config_file . /path/to/config_file 撤消別名:unalias unalias [-a] name [name ...] Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND";
6.顯示/var
目錄下所有以l
開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文檔或目錄
[root@hadoop var]# ls l*[0-9]*[a-z] l22e la2e lcd234r l23ass: lov234e: [root@hadoop var]# ls l*[[:digit:]]*[[:lower:]] l22e la2e lcd234r l23ass: lov234e:
7.顯示/etc
目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@hadoop etc]# ls [[:digit:]]*[^[:digit:]] 1abD: 2abD:
8.顯示/etc
目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄
[root@hadoop etc]# ls [^[:alpha:]][[:alpha:]]* 1abD: 2abD:
9.在/tmp
目錄下創建以tfile開頭,后面當前日期和時間的文件
[root@hadoop tmp]# mkdir tfile-$(date +%F)
10.復制/etc
目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest2
目錄中
[root@hadoop tmp]# cp /etc/p*[^0-9]/ /tmp/mytest2/ [root@hadoop tmp]# cp /etc/p*[^0-9] /tmp/mytest2/
11.復制/etc
目錄下所有以.d結尾的文件或目錄至/tmp/mytest2
目錄中
[root@hadoop tmp]# cp /etc/*.d /tmp/mytest2
12.復制/etc
目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3
目錄中
[root@hadoop tmp]# cp /etc/[lmn]*\.conf /tmp/mytest3
原創文章,作者:Jeason,如若轉載,請注明出處:http://www.www58058.com/24088
寫的很好,排版也很漂亮,加油。給你提一個問題,如果文件已經存在 ,如何不顯示警告信息,可以直接覆蓋?