linux文件管理命令有:cp,mv,rm
cp命令:用于復制件或目錄文
[root@localhost etc]# cp -i /etc/passwd /tmp/123 [root@localhost etc]# cd /tmp [root@localhost tmp]# ls 123 //cp/etc目錄下得passwd至/tmp目錄下并更名為123。此為單源復制,源文件可以為文件也可以是目錄但必須是一個
[root@localhost tmp]# cp -r /etc /tmp/ [root@localhost tmp]# ls /tmp 123 etc [root@localhost tmp]# //-r復制目錄。此為多源復制,目標文件必須是目錄 注意:文件屬主得不同會帶來文件權限上得變化 如要備份-r選項改為-a
[root@localhost etc]# cp -d ./favicon.png /tmp
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
mv命令:移動文件、目錄 或更名
[root@localhost tmp]# ls 123 etc favicon.png lianxi1.sh [root@localhost tmp]# mv 123 234 [root@localhost tmp]# ls 234 etc favicon.png lianxi1.sh [root@localhost tmp]# //重命名 注意:重命名目錄名也可不加選項
[root@localhost tmp]# mv 234 ./magedu.com [root@localhost tmp]# ls /tmp/magedu.com 234 machine-id mtab [root@localhost tmp]# //移動
常用選項:
-i:交互式;
-f:當目標文件存在,強行覆蓋
rm命令:刪除
[root@localhost magedu.com]# ls 234 machine-id mtab [root@localhost magedu.com]# rm 234 //直接跟目標文件名即可 rm: remove regular file ‘234’? y //root用戶使用rm時,其別名默認為rm -i 即交互式。 [root@localhost magedu.com]# ls machine-id mtab [root@localhost magedu.com]#
[root@localhost tmp]# rm -r ./etc //刪除目錄 rm: descend into directory ‘./etc’? y //管理員的rm別名默認為rm -i,同上 rm: remove regular file ‘./etc/fstab’? y
[root@localhost tmp]# rm -rf ./etc //-f 強行刪除,切記危險操作
常用選項:
-i:交互式
-f:強制
-r: 遞歸刪除
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
bash命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
[xujie@localhost ~]$ ls [xujie@localhost ~]$ echo $? 0 [xujie@localhost ~]$
[xujie@localhost ~]$ lls -bash: lls: command not found [xujie@localhost ~]$ echo $? 127 [xujie@localhost ~]$
命令行展開:
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
例如:/tmp/{a,b} 相當于 /tmp/a /tmp/b
請使用命令行展開功能來完成以下練習?
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2)、創建/tmp/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
[root@localhost tmp]# mkdir -pv {a,d}_{b,c} mkdir: created directory ‘a_b’ mkdir: created directory ‘a_c’ mkdir: created directory ‘d_b’ mkdir: created directory ‘d_c’ [root@localhost tmp]#
[root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot,boot/grub,dev,etc,etc/{rc.d/init.d ,sysconfig/network-scrip}lib,lib/modules,lib64,proc,sbin,sys,tmp,usr,usr/loca/{bin,sbin}, var/{lock,log,run}}
[root@localhost tmp]# tree mylinux mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.dlib │ └── sysconfig │ └── network-scriplib ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── loca │ ├── bin │ └── sbin └── var ├── lock ├── log └── run 24 directories, 0 files
文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?
[root@localhost tmp]# ls mylinux [root@localhost tmp]# stat mylinux //使用stat命令查看文件的元數據 File: ‘mylinux’ //文件名 Size: 4096 Blocks: 8 IO Block: 4096 directory //文件大小,占據多少個塊,IO塊,文件的類型 注: Blocks:8 IO Block:4096 占據8個塊,每一個塊的大小4096字節 Device: fd00h/64768d Inode: 458214 Links: 14 //所在的設備號,索引節點號,硬鏈接 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) //權限,UID,組ID Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-20 23:00:34.989551567 -0400 //最近訪問,讀取數據流 Modify: 2016-08-20 22:59:39.296555079 -0400 //這三個時間代表時間戳//最近更改,元數據改變 Change: 2016-08-20 22:59:39.296555079 -0400 //最近改動,數據改變 Birth: - [root@localhost tmp]#
修改時間戳:touch命令 touch命令通常只改變Access Time和Modify Time
[root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-20 23:00:34.989551567 -0400 Modify: 2016-08-20 22:59:39.296555079 -0400 Change: 2016-08-20 22:59:39.296555079 -0400 Birth: - [root@localhost tmp]# touch ./mylinux/ [root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-21 00:38:12.418182188 -0400 Modify: 2016-08-21 00:38:12.418182188 -0400 Change: 2016-08-21 00:38:12.418182188 -0400 Birth: - [root@localhost tmp]#
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP 格式[[CC]YY]MMDDhhmm[.ss]年月日時分.秒
[root@localhost tmp]# touch -m -t 201609240815.45 ./mylinux/ [root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-21 00:38:12.418182188 -0400 Modify: 2016-09-24 08:15:45.000000000 -0400 Change: 2016-08-21 00:45:19.599155249 -0400 Birth: - [root@localhost tmp]#
如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
定義別名 alias命令:
[xujie@localhost ~]$ alias rm='rm -i' [xujie@localhost ~]$ alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [xujie@localhost ~]$
引用命令的執行結果:
num1=$(id 1 | grep -o "uid=[0-9]\+" | cut -d = -f 2)
[xujie@localhost ~]$ de='rm -i' [xujie@localhost ~]$ echo $de rm -i [xujie@localhost ~]$
引用命令的執行結果: $(COMMAND)或`COMMAND`
顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄?
[root@localhost tmp]# ls -d /var/l*[[:digit:]]*[[:lower:]]
顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@localhost tmp]# ls -d /etc/[0-9]*[^0-9] /etc/0a0544d
顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄?
[root@localhost tmp]# ls -d /etc/[^a-z][a-z]*
在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-`date +%Y-%m-%d-%H-%M-%S`
復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@localhost /]# cp -r `ls -d /etc/[p]*[^0-9]` /tmp/mytest1
復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@localhost /]# cp -r `ls -d /etc/*[.d]` /tmp/mytest2
復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@localhost /]# cp -r `ls -d /etc/[l,m,n]*[.conf]` /tmp/mytest3
原創文章,作者:N22-南京-修,如若轉載,請注明出處:http://www.www58058.com/38039
[root@localhost /]# cp -r `ls -d /etc/p*[^0-9]` /tmp/mytest1
[root@localhost /]# cp -r `ls -d /etc/*.d` /tmp/mytest2
[root@localhost /]# cp -r `ls -d /etc/[l,m,n]*.conf` /tmp/mytest3
以上最后三題的更正
寫的很好,排版也很棒,加油,創建目錄的題目跟題目的要求不一樣啊