1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理類命令有:mkdir rmdir cp mv rm
mkdir:創建文件夾
命令格式:mkdir [OPTION]… DIRECTORY…
# 創建日期文件夾 mkdir /tmp/`date +%Y-%m-%d`
rmdir:刪除空文件夾
命令格式:rmdir [OPTION]… DIRECTORY…
# 刪除上面創建的日期文件夾 rmdir /tmp/2017-01-17
cp:拷貝文件或目錄
命令格式:cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
# 拷貝文件到目錄 cp /etc/passwd /tmp/test # 拷貝并覆蓋文件 cp /etc/shadow /tmp/test/passwd # 遞歸拷貝文件夾 cp -r /var/log /tmp/test
rm:刪除文件或目錄
命令格式:rm [OPTION]… FILE…
# 刪除目錄下所有文件 rm /tmp/test/* # 刪除空目錄 rm /tmp/test
mv:移動或重命名文件
命令格式:mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
# 移動目錄中所有文件到目標文件夾 mv /tmp/test/* /tmp/test2 # 重命名文件 mv messages notes.txt
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
在命令執行后,可以立即使用命令“echo $?”打印命令執行的狀態返回值,返回0表示命令執行成功,其他值則表示命令執行失敗
命令行展開涉及兩組符號“~”和 “{,}”
~ :展開為用戶的家目錄
[root@localhost mylinux]# su eric [eric@localhost mylinux]$ cd ~ [eric@localhost ~]$ pwd /home/eric
{,}:大括號內包含逗號分隔的路徑列表,展開為多個路徑
mkdir /tmp/test/{a,b} # 上面一條命令相當于下面兩條命令 mkdir /tmp/test/a 和 mkdir /tmp/test/b
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
mkdir {a,b}_{c,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
mkdir -p /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}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據包括:
File:文件名,
Size:文件大小,
Blocks:文件塊數,
IO Block:IO塊大小,
Device:設備號,
Links:鏈接次數,
Access:訪問權限,
Uid:用戶ID,
Gid:組ID,
Access time:最近訪問時間,
Modify time:最近修改數據時間,
Change time:最近更改元數據時間
# 查看文件元數據 stat /etc/passwd
更改時間戳可以使用 touch 命令
# 同時修改 Access time, Modify time, Change time touch /tmp/mytest3.txt # 修改 Access time touch -a /tmp/mytest3.txt # 修改 Modify time touch -m /tmp/mytest3.txt
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
# 定義別名 alias cls=clear # 取消別名定義 unalias cls
在命令中引用另一命令的執行結果可以通過兩種格式
(1) COMMAND1 `COMMAND2`
cd `echo /usr/share`
(2) COMMAND1 $(COMMAND2)
mkdir $(date +%Y)
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost var]# mkdir 1plus2minus [root@localhost var]# touch 1helloCentOS7.txt [root@localhost var]# cd 1plus2minus/ [root@localhost 1plus2minus]# touch abc.txt ... [root@localhost var]# ls -d 1*[0-9]*[[:lower:]] 1helloCentOS7.txt 1plus2minus
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost var]# touch 8code [root@localhost var]# ls -d [0-9]*[^0-9] 1helloCentOS7.txt 1plus2minus 8code
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
# 在/etc目錄中滿足條件的文件或目錄均以"."開頭,由于shell選項dotglob的默認設置,[^a-z]不能匹配"." [root@localhost etc]# ls -d /etc/[^a-z][a-z]* ls: cannot access /etc/[^a-z][a-z]*: No such file or directory # 開啟dotglob,使通配符可以匹配“.” [root@localhost var]# shopt -s dotglob [root@localhost etc]# ls -d /etc/[^a-z][a-z]* /etc/.java /etc/.pwd.lock /etc/.updated # 恢復選項默認值 [root@localhost etc]# shopt -u dotglob # 查看shell選項 [root@localhost etc]# shopt
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost tmp]# mkdir tfile-`date +%Y-%m-%d-%H-%M-%S`
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost tmp]# mkdir /tmp/mytest1 [root@localhost tmp]# cp -r /etc/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost tmp]# mkdir mytest2 [root@localhost tmp]# cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp /etc/[1mn]*.conf /tmp/mytest3
原創文章,作者:和風細雨,如若轉載,請注明出處:http://www.www58058.com/66740
較上篇有不小的提高,加油。