1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理工具:cp,mv,rm
cp命令:cope
源文件:目標文件
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中;
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件;
如果DEST是目錄文件,則現在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r,R:遞歸復制目錄;
-d:復制符號鏈接文件本身。而非,其指向的源文件本身;
-a:-dR –preserve=all ,archive,用于實現歸檔(即:備份)
–preserv=
mode:權限
ownership:屬主和屬組
timestamps:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i:交互式
-f:force
重命名示例:
[root@localhost ~]# cd /tmp/x
[root@localhost x]# ls
hi.text y1 y2
[root@localhost x]# mv hi.text hello.text
[root@localhost x]# ls
hello.text y1 y2
rm命令:remove
-i:interactive 交互式
-f:force 強制進行
-r:recursive 遞歸,用戶刪除目錄及其包含的所有內容
示例:[root@localhost ~]# rm -rf /tmp/x
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值會保存于bash的特殊變量$?中
示例:
[root@localhost tmp]# ls
a_c b_c conf.d
[root@localhost tmp]# echo $?
0
[root@localhost tmp]#
bash的基礎特性:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑
示例:
[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}
意:
創建: /tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y2/b
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d。
[root@localhost ~]# mkdir -v /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’
[root@localhost ~]# ls /tmp
a_c a_d b_c b_d conf.d functions gelv magedu.com man mysysroot x
(2)、創建/tmp/mylinux目錄下的:
mylinux/
–bin
–boot
–grub
–dev
–etc
–rc.d
–init.d
–sysconfig
network-scripts
–lib
–modules
–lib64
–proc
–sbin
–sys
–tmp
–user
–local
–bin
–sbin
–var
–lock
–log
–run
答:
[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,user/local/{bin,sbin},var/{lock,log,run}}
[root@localhost ~]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── user
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
24 directories, 0 files
[root@localhost ~]#
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?
(1)文件的元數據信息有:
File:文件的名字
Size:文件的大小
Blocks:文件使用的塊的大小
IO Blocks:文件使用的IO塊的大小
regular file:標識文件的性質(此處文件為普通文件)
Device:該文件所在的設備的設備號
Inode:索引節點號
Access:使用權限
Uid:屬主
Gid:屬組
以及時間戳等信息
(2)如何查看?
使用stat命令查看。
示例:[root@localhost ~]# stat functions
(3)如何修改文件的時間戳信息?
可使用touch命令修改文件的時間戳信息。
示例:
[root@localhost ~]# touch -m -t 200601030303.03 /tmp/functions
意:將/tmp目錄下的functions文件的modify time修改為2006年1月3日3點3分3秒
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
(1)使用alias命令定義一個命令的別名。
示例:
[root@localhost ~]# alias giveip=giveip='ip addr list'
(2)在命令中引用另一個命令的執行結果。
[root@localhost ~]# mkdir /tmp/$(date +%H-%M-%S)
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄。
[root@localhost ~]# ls /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄
[root@localhost ~]# ls /etc/[^a-z][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形式如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-$(date +%F-%H-%M-%S)
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2/
12、復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:hotpoint,如若轉載,請注明出處:http://www.www58058.com/48733