一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關演示。
?A、copy命令
? ? ?? a、 單元復制:cp [OPTION]… [-T] SOURCE DEST
1、? 如果dest不存在:則事先創建此文件,并復制源文件的數據流至dest中;
[root@localhost /]# ls -l /tmp
total 0
[root@localhost /]# cp /etc/fstab /tmp/fstab
[root@localhost /]# diff /etc/fstab /tmp/fstab
[root@localhost /]#
2、 如果dest存在:
#如果dest是非目錄文件,則覆蓋目標文件:
[root@localhost /]# touch /tmp/a b c d e f
[root@localhost /]# cp /etc/fstab /tmp/a
cp: overwrite ‘/tmp/a’?
[root@localhost /]#
#如果dest是目錄文件:則先在dest目錄下創建一個與源文件同名的文件,并復制其數據流:
[root@localhost /]# cp /etc/hostname /tmp
[root@localhost /]# ls -l /tmp
total 8
-rw-r–r–. 1 root root? 0 Sep? 6 23:42 a
-rw-r–r–. 1 root root 501 Sep? 6 23:41 fstab
-rw-r–r–. 1 root root? 22 Sep? 6 23:49 hostname
? ? ? ? ? b、多源復制:cp [OPTION]… SOURCE… DIRECTORY
????????????????????????????????? cp [OPTION]… -t DIRECTORY SOURCE..
#如果dest不存在:錯誤:
[qiu@localhost ~]$ cp /etc/{fstab,yum.conf} /tmp/rrr.txt
cp: target ‘/tmp/rrr.txt’ is not a directory
#如果dest是非目錄文件:錯誤
[root@localhost ~]# ls -l /tmp
total 16
-rw-r–r–. 1 root root? 0 Sep? 6 23:52 a
-rw-rw-rw-. 1 root root 501 Sep? 7 00:00 b
-rw-r–r–. 1 root root? 0 Sep? 6 23:52 c
-rw-r–r–. 1 root root? 0 Sep? 6 23:52 d
-rw-r–r–. 1 root root 501 Sep? 6 23:41 fstab
-rw-r–r–. 1 root root? 22 Sep? 6 23:49 hostname
drwxr-xr-x. 2 root root? 33 Sep? 7 01:09 test
-rw-r–r–. 1 root root 970 Sep? 7 01:02 yum.conf
[root@localhost ~]# cp /etc/{yum.conf,fstab} /tmp/a
cp: target ‘/tmp/a’ is not a directory
#如果dest是目錄文件:分別復制每個文件至目錄中,并保持原名;
[root@localhost ~]# mkdir /tmp/test2
[root@localhost ~]# cp /etc/{yum.conf,fstab} /tmp/test2
[root@localhost ~]# ls -l /tmp/test2
total 8
-rw-r–r–. 1 root root 501 Sep? 7 01:17 fstab
-rw-r–r–. 1 root root 970 Sep? 7 01:17 yum.conf
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認:-f:強制覆蓋目標文件:
[qiu@localhost ~]$ cp -i /etc/fstab /tmp/b
cp: overwrite ‘/tmp/b’? y
[qiu@localhost ~]$
-r:遞歸復制目錄:
[root@localhost /]# cp -r /var/log /tmp
[root@localhost /]# ls -l /tmp
total 20
-rw-r–r–.? 1 root root? ? 0 Sep? 6 23:52 a
-rw-rw-rw-.? 1 root root? 501 Sep? 7 00:00 b
-rw-r–r–.? 1 root root? ? 0 Sep? 6 23:52 c
-rw-r–r–.? 1 root root? ? 0 Sep? 6 23:52 d
-rw-r–r–.? 1 root root? 501 Sep? 6 23:41 fstab
-rw-r–r–.? 1 root root? 22 Sep? 6 23:49 hostname
drwxr-xr-x. 19 root root 4096 Sep? 7 01:27 log
[root@localhost /]# cp -r /var/{adm,log} /tmp/test2
[root@localhost /]# ls -l /tmp/test2
total 12
drwxr-xr-x.? 2 root root? ? 6 Sep? 7 01:30 adm
-rw-r–r–.? 1 root root? 501 Sep? 7 01:17 fstab
drwxr-xr-x. 19 root root 4096 Sep? 7 01:30 log
-rw-r–r–.? 1 root root? 970 Sep? 7 01:17 yum.conf
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dr –preserve=all ,archive,用于實現歸檔;
–preserve=
mode:權限
ownership:屬主和屬組
timestamps:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
?B、mv命令
? ? ? a、單元移動:mv [OPTION]… [-T] SOURCE DEST
1、dest路徑一定要存在,否者無法移動
root@localhost /]# mv /tmp/a /tmp/g
mv: cannot stat ‘/tmp/a’: No such file or directory
2、dest如果是文件,則覆蓋文件內容
[root@localhost /]# mv /tmp/a /tmp/b
mv: overwrite ‘/tmp/b’? y
[ root@localhost /]# ls -l /tmp
total 16
-rw-r–r–.? 1 root root? 501 Sep? 6 23:41 b
3、如果源文件是目錄,則目標也必須是目錄,否則會報錯。
[root@localhost /]# mv /var/log /tmp/c
mv: overwrite ‘/tmp/c’? y
mv: cannot overwrite non-directory ‘/tmp/c’ with directory ‘/var/log’
[root@localhost /]# mv /var/log /tmp/test3
[root@localhost /]# ls -l /tmp/test3 | wc -l
2
[root@localhost /]# ls -l /tmp/test3
total 4
drwxr-xr-x. 19 root root 4096 Sep? 6 22:53 log
常用選項:
-i:交互式
[root@localhost /]# mv -i /tmp/b /tmp/d
mv: overwrite ‘/tmp/d’? n
[root@localhost /]#
-f:force
[root@localhost /]# mv -f /tmp/b /tmp/d
[root@localhost /]# ls -l /tmp
total 12
-rw-r–r–. 1 root root? 0 Sep? 6 23:52 c
-rw-r–r–. 1 root root 501 Sep? 6 23:41 d
-rw-r–r–. 1 root root? 22 Sep? 6 23:49 hostname
drwxr-xr-x. 2 root root? 33 Sep? 7 01:09 test
drwxr-xr-x. 4 root root? 53 Sep? 7 01:30 test2
C、rm命令
rm [OPTION]… FILE…
常用選項:
-i:交互式
[root@localhost /]# rm -i /tmp/c
rm: remove regular empty file ‘/tmp/c’? y
[root@localhost /]# ls -l /tmp
total 12
-rw-r–r–. 1 root root 501 Sep? 6 23:41 d
-rw-r–r–. 1 root root? 22 Sep? 6 23:49 hostname
-f:force
[root@localhost /]# rm -f /tmp/d
You have new mail in /var/spool/mail/root
[root@localhost /]# ls -l /tmp
total 8
-rw-r–r–. 1 root root? 22 Sep? 6 23:49 hostname
drwxr-xr-x. 2 root root? 33 Sep? 7 01:09 test
drwxr-xr-x. 4 root root? 53 Sep? 7 01:30 test2
drwxr-xr-x. 3 root root? 16 Sep? 7 01:57 test3
-rw-r–r–. 1 root root 970 Sep? 7 01:02 yum.conf
-r :遞歸刪除
[root@localhost /]# rm -ir /tmp/test
rm: descend into directory ‘/tmp/test’? y
rm: remove regular file ‘/tmp/test/yum.conf’? y
rm: remove regular file ‘/tmp/test/fstab’? y
rm: remove directory ‘/tmp/test’? y
危險操作:rm -rf /*
注意:所有不用的文件建議不要直接刪除。
二、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
bash的基礎特性:
命令的執行狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中:
命令正常執行時,有的還回有命令返回值;
根據命令及其功能不同,結果各不相同;
引用命令的執行結果:
$(COMMAND) 或‘(COMMAND)’
[root@localhost /]# rm -rf /tmp/test2
[root@localhost /]# echo $?
0
三、請使用命令行展開功能來完成以下練習:
??? 1、創建/tmp目錄下的:a_c, a_d,b_c,b_d
root@localhost /]# mkdir /tmp/{a_c,a_d,b_c,b_d}
[root@localhost /]# ls -l /tmp
total 0
drwxr-xr-x. 2 root root 6 Sep? 7 03:05 a_c
drwxr-xr-x. 2 root root 6 Sep? 7 03:05 a_d
drwxr-xr-x. 2 root root 6 Sep? 7 03:05 b_c
drwxr-xr-x. 2 root root 6 Sep? 7 03:05 b_d
??? 2、創建/tmp/mylinux目錄下的:
/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
[root@localhost /]# mkdir -pv
/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}}
mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/bin’
mkdir: created directory ‘/tmp/mylinux/boot’
mkdir: created directory ‘/tmp/mylinux/boot/grub’
mkdir: created directory ‘/tmp/mylinux/dev’
mkdir: created directory ‘/tmp/mylinux/etc’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’
mkdir: created directory ‘/tmp/mylinux/lib’
mkdir: created directory ‘/tmp/mylinux/lib/modules’
mkdir: created directory ‘/tmp/mylinux/lib64’
mkdir: created directory ‘/tmp/mylinux/proc’
mkdir: created directory ‘/tmp/mylinux/sbin’
mkdir: created directory ‘/tmp/mylinux/sys’
mkdir: created directory ‘/tmp/mylinux/tmp’
mkdir: created directory ‘/tmp/mylinux/usr’
mkdir: created directory ‘/tmp/mylinux/usr/local’
mkdir: created directory ‘/tmp/mylinux/usr/local/bin’
mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’
mkdir: created directory ‘/tmp/mylinux/var’
mkdir: created directory ‘/tmp/mylinux/var/lock’
mkdir: created directory ‘/tmp/mylinux/var/log’
mkdir: created directory ‘/tmp/mylinux/var/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
├── usr
└── local
├── bin
└── sbin
└── var
├── lock
├── log
└── run
四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳。
[root@localhost /]# stat /tmp/a_c
File: ‘/tmp/a_c’
Size: 6? ? ? ? Blocks: 0? ? ? ? ? IO Block: 4096? directory
Device: 803h/2051d Inode: 808456133? Links: 2
Access: (0755/drwxr-xr-x)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-09-07 03:05:02.800231682 -0700
Modify: 2017-09-07 03:05:02.800231682 -0700
Change: 2017-09-07 03:05:02.800231682 -0700
Birth: –
size:文件大小??? Blocks:文件塊???? IO Block:IO 塊數
Device:設備號????? links:硬件連接數
Access:屬主屬組其他權限?? Uid:用戶id號? Gid:組id號
Access time:上次訪問時間
Modify time : 上次更改時間
Change time : 上次改動時間
touch命令:
touch – change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路徑不存在時不予創建;
-a:僅修改access time
-m:僅修改modify time
-t:stamps
[root@localhost /]# touch -a -t? 201611121200 /tmp/a_c/file
You have new mail in /var/spool/mail/root
[root@localhost /]# stat /tmp/a_c/file
File: ‘/tmp/a_c/file’
Size: 0? ? ? ? Blocks: 0? ? ? ? ? IO Block: 4096? regular empty file
Device: 803h/2051d Inode: 808456184? Links: 1
Access: (0644/-rw-r–r–)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-11-12 12:00:00.000000000 -0800
Modify: 2017-09-07 04:48:06.854340802 -0700
Change: 2017-09-07 04:50:19.768254065 -0700
Birth: –
[root@localhost /]# touch -m -t? 201611121200 /tmp/a_c/file
You have new mail in /var/spool/mail/root
[root@localhost /]# stat /tmp/a_c/file
File: ‘/tmp/a_c/file’
Size: 0? ? ? ? Blocks: 0? ? ? ? ? IO Block: 4096? regular empty file
Device: 803h/2051d Inode: 808456184? Links: 1
Access: (0644/-rw-r–r–)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-11-12 12:00:00.000000000 -0800
Modify: 2016-11-12 12:00:00.000000000 -0800
Change: 2017-09-07 05:04:26.164027171 -0700
原創文章,作者:N27_Sunny day,如若轉載,請注明出處:http://www.www58058.com/86386
再接再勵。