1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理命令:cp、mv、rm
(1)cp命令:copy
單源復制:cp [OPTION]... [-T] SOURCE DEST 多源復制:cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE...
[OPTION]
-i:交互式覆蓋,即覆蓋前提示 -f:強制覆蓋目標文件 -r:遞歸復制目錄 -d:復制符號鏈接文件本身,而非其指向的源文件 -a:-dR --preserve=all,archive --preserve= mode:權限 ownership:屬組和屬主 timestamps:時間戳 context:安全標簽 xattr:擴展屬性 links:符號鏈接 all:上述所有屬性
示例1:拷貝/etc/fstab到/tmp目錄下
[root@UncleZ ~]# cp /etc/fstab /tmp [root@UncleZ ~]# ls /tmp fstab
示例2:拷貝/etc目錄到/tmp目錄下
[root@UncleZ ~]# cp -r /etc/ /tmp
(2)mv命令:move
源文件和目標文件在同一目錄下,重命名 源文件和目標文件不在同一目錄下,移動 -i:交互式 -f:force,強制
將123.txt重命名
[root@UncleZ tmp]# mv 123.txt 1234.txt
(3)rm命令:remove
-i:interactive -f:force -r:recursive rm -rf 注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
示例:刪除/tmp下的所有文件
[root@UncleZ tmp]# rm -rf /tmp/*
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
命令執行的狀態結果: echo $? 0:表示成功 1~255:失敗 命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中
示例:
[root@UncleZ ~]# ls a_c anaconda-ks.cfg b_d initial-setup-ks.cfg python test2.sh var2.sh a_d b_c database ni.sh ss.sh test.sh var.sh [root@UncleZ ~]# echo $? 0
命令執行成功
3、請使用命令行展開功能來完成以下練習;
{}: 可承載一個以逗號分隔的路徑列表,并能否將其展開為多個路徑
(1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d
[root@UncleZ ~]# touch /tmp/{a,b}_{c,d} [root@UncleZ ~]# ls /tmp a_c a_d b_c b_d
(2)
[root@UncleZ ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-script},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} 略 [root@UncleZ ~]# tree /tmp/mylinux /tmp/mylinux |-- bin |-- boot | `-- grub |-- dev |-- etc | |-- rc.d | | `-- init.d | `-- sysconfig | `-- network-script |-- lib | `-- modules |-- lib64 |-- proc |-- sbin |-- sys |-- tmp |-- usr | `-- local | |-- bin | `-- sbin `-- var |-- lock |-- log `-- run 24 directories, 0 files
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
(1)元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode…)等等
時間戳:
atime (access time) 最近訪問 mtime (modify time) 最近更改,文件內容發生改變的時間 ctime (change time) 最近改動,元數據發生改動的時間
(2)使用命令stat就可以看到元數據信息,例:
[root@UncleZ ~]# stat /tmp File: ‘/tmp’ Size: 60 Blocks: 0 IO Block: 4096 directory Device: fd01h/64769d Inode: 133 Links: 3 Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:tmp_t:s0 Access: 2016-12-10 18:26:44.525844032 +0800 Modify: 2016-12-10 18:26:23.004928402 +0800 Change: 2016-12-10 18:26:23.004928402 +0800 Birth: -
(3)使用touch修改文件的時間戳信息:
touch – change file timestamps
-c:指定的文件路徑不存在時不予創建 -a:僅修改access time -m:僅修改modify time -t STAMP [[CC]YY]MMDDhhmm[.ss]
示例:修改mtime
[root@UncleZ ~]# touch -m -t 0212010303.03 /tmp/functions [root@UncleZ ~]# stat /tmp/functions File: ‘/tmp/functions’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 2360083 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-12-06 21:06:48.151112808 +0800 Modify: 2002-12-01 03:03:03.000000000 +0800 Change: 2016-12-06 21:06:48.152115493 +0800 Birth: -
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias命令:
獲取所有可用別名的定義 定義別名: ~]# alias NAME='COMMAND' 注意,僅對當前shell進程有效 撤銷別名: ~]# unalias NAME
引用命令的執行結果:
$(COMMAND)或 `COMMAND``
6、顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以以有其它字符)的文件或目錄。
[root@UncleZ var]# ls -d /var/1*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@UncleZ ~]# ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@UncleZ ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@UncleZ ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@UncleZ ~]# mkdir /tmp/mytest1 [root@UncleZ ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@UncleZ ~]# mkdir /tmp/mytest2 [root@UncleZ ~]# cp -r /etc/*.d /tmp/mytest2
12、復制/etc、目錄下所有以1或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@UncleZ ~]# mkdir /tmp/mytest3 [root@UncleZ ~]# cp /etc/[1mn]*.conf /tmp/mytest3
原創文章,作者:N25-趙叔,如若轉載,請注明出處:http://www.www58058.com/63154
贊,總結的不錯,建議可以根據這部分進行深入的擴展~繼續加油~