1、Linux上的文件管理類命令都有哪些,其常用的使用方法及相關示例演示。
文件管理類命令有:cp,mv,rm
1. cp:copy
使用方法:
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認
-f:強制覆蓋目標文件
-r,-R:遞歸復制目錄
-d:復制符號鏈接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于實現歸檔
–preserv=
mode:權限
ownership:屬主和屬組
timestamps:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
實例:
[root@test samba]# cp -air /etc/samba /tmp 將samba目錄下的所有文件包括子目錄及其所有屬性以交互的方式的復制到/tmp目錄下
[root@test samba]# ll /etc/samba /tmp/samba/
/etc/samba:
total 20
-rw-r–r–. 1 root root 20 May 12 13:23 lmhosts
-rw-r–r–. 1 root root 9778 May 12 13:23 smb.conf
-rw-r–r–. 1 root root 97 May 12 13:23 smbusers
/tmp/samba/:
total 20
-rw-r–r–. 1 root root 20 May 12 13:23 lmhosts
-rw-r–r–. 1 root root 9778 May 12 13:23 smb.conf
-rw-r–r–. 1 root root 97 May 12 13:23 smbusers
2. mv:move
使用方法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
常用選項:
-i:交互式;
-f:force
實例:
[root@test tmp]# mv samba mv_samba 將samba目錄重命名為mv_samba
[root@test tmp]# ll |grep *samba
drwxr-xr-x. 3 root root 4096 Aug 19 09:43 mv_samba
[root@test tmp]# mv test test2 將test目錄移動到test2目錄下
3. rm:remove
使用方法:
rm [OPTION]… FILE…
常用選項:
-i:interactive
-f:force
-r: recursive
實例:
[root@test tmp]# rm -rf mv_samba 刪除mv_samba目錄及目錄內所有子目錄和文件
危險操作:rm -rf /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1.bash的基礎特性:命令的執行狀態結果
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
示例 :
[root@test tmp]# ll tmp 命令失敗輸出結果為:2
ls: cannot access tmp: No such file or directory
[root@test tmp]# echo $?
2
[root@test tmp]# ll tfile-2016-08-20-22-17-45 命令成功輸出結果為:0
-rw-r–r–. 1 root root 0 Aug 20 22:17 tfile-2016-08-20-22-17-45
[root@test tmp]# echo $?
0
2.bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
示例:
[root@test tmp]# cd ~ 進入root家目錄
[root@test ~]# pwd
/root
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
示例:
[root@test tmp]# mkdir ./{a,b} 在tmp目錄同時創建a,b兩個目錄
[root@test tmp]# ll -d a b
drwxr-xr-x. 2 root root 4096 Aug 20 22:34 a
drwxr-xr-x. 2 root root 4096 Aug 20 22:34 b
3、請使用命令行展開功能完成以下練習:
(1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d
mkdir /tmp/{a,b}_{c,d}
mkdir /tmp/{a_{c,d},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
[root@test tmp]# mkdir -p 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@test tmp]# tree 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
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
元數據信息:
File:文件名
Size:文件大小
Blocks:多少塊
IO Block: 塊大小
regular file:文件類型
Device: 設備
Inode: 索引節點
Links: 連接數
Access: (0600/-rw——-) 文件權限
Uid: 所屬用戶ID
Gid: 所屬組ID
Access: 訪問時間
Modify: 修改時間
Change: 改動時間
查看文件的元數據:stat FILE…
示例:
[root@test tmp]# stat sshd_config
File: `sshd_config'
Size: 3880 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68946 Links: 1
Access: (0600/-rw——-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-20 23:00:29.481616790 +0800
Modify: 2016-08-20 23:00:29.481616790 +0800
Change: 2016-08-20 23:00:29.481616790 +0800
修改文件時間戳信息:
touch命令:
touch – change file timestamps
touch [OPTION]… FILE… 注:不加選項時,所有時間都會改變
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
示例:
[root@test tmp]# touch -m -t 200201010101.01 sshd_config
[root@test tmp]# stat sshd_config 更改時間改為:2002年1月1日1點1分1秒(注:改動時間為命令執行時間)
File: `sshd_config'
Size: 3880 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68946 Links: 1
Access: (0600/-rw——-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-20 23:00:29.481616790 +0800
Modify: 2002-01-01 01:01:01.000000000 +0800
Change: 2016-08-20 23:18:48.023616905 +0800
5、如何定義一個命令別名,如何在命令中引用另一個命令執行結果?
1.定義命令別名格式:
alias [-p] [name[=value] … ]
實例:
[root@test ~]# alias cls=clear 用cls命令實現清屏功能
2.引用命令執行結果:
$(COMMAND) 或 $'COMMAND'
實例:
[root@test tmp]# mkdir $(date +%Y-%m-%d) 創建以今天的日期為名字的目錄
[root@test tmp]# ll
total 60
drwxr-xr-x. 2 root root 4096 Aug 20 21:22 2016-08-20
6、顯示/var目錄下所有以l開頭,且非數字結尾的文件或目錄。
[root@test var]# ls -d l*[^0-9]
lib local lock log
7、顯示/etc目錄下,任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@test var]# ls -d /etc/[0-9]*[^0-9]
ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄。
1.[root@test var]# ls /etc/[^a-z][a-z]*
ls: cannot access /etc/[^a-z][a-z]*: No such file or directory
2.[root@test var]# ls /etc/[^[:alpha:]][a-z]*
ls: cannot access /etc/[^[:alpha:]][a-z]*: No such file or directory
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@test tmp]# touch tfile-$(date +%F-%H-%M-%S)
[root@test tmp]# ls |grep tfile
tfile-2016-08-20-22-17-45
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
1.[root@test tmp]# cp -r /etc/p*[^0-9] /tmp/mytest1
2.[root@test tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@test tmp]# cp -r /etc/*.d /tmp/mytest2
12、復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@test tmp]# cp -r /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:N22_上海_長清,如若轉載,請注明出處:http://www.www58058.com/38129
寫的很好,排版還可以在漂亮一點,加油,3大題2小題在仔細看看老師出的題目
@馬哥教育:老師,我是進入tmp目錄下使用的mkdir -p mylinux/ , [root@test tmp]# 相對路徑 ,是這個有問題嗎?