Linux操作文件與目錄——cp、mv、mkdir、rm和ln命令

1.通配符

表1 常用的通配符以及它們所選擇的對象

通配符 匹配項
* 匹配任意多個字符(包括0個和1個)
匹配任意單個字符(不包括0個)
[characters] 匹配任意一個屬於字符集中的字符
[!characters] 匹配任意一個不屬於字符集中的字符
[[:class:]] 匹配任意一個屬於指定字符類中的字符

表2 最常見的字符類

字符類 匹配項
[:alnum:] 匹配任意一個字母或數字
[:alpha:] 匹配任意一個字母
[:digit] 匹配任意一個數字
[:lower:] 匹配任意一個小寫字母
[:upper:] 匹配任意一個大寫字母

表3 通配符示例

形式 匹配項
* 所有文件
g* 以g開頭的任一文件
b*.txt 以b開頭,中間有任意多個字符,並以.txt結尾的任一文件
Data??? 以Data開頭,後面跟3個字符的任一文件
[abc]* 以a,b,c任一一個開頭的任一文件
BACKUP.[0-9][0-9][0-9] 以BACKUP.開頭,後面跟隨3個數字的任一文件
[[:upper:]]* 以大寫字母開頭的任一文件
[![:digit:]]* 不以數字開頭的任一文件
*[[:lower]123] 以小寫字母或數字1、2、3中任一結尾的任一文件

2. mkdir——創建目錄

語法 mkdir directory …
可同時創建多個目錄,例如
mkdir dir1 dir2 dir3

3.cp——複製文件和目錄

語法
複製單個文件: cp item directory
複製多個文件: cp item… directory

表4 cp命令選項

選項 含義
-a,–archive 複製文件和目錄及其屬性包括所有權和權限。通常來說,複製文件具有用戶所操作文件的默認屬性
-i ,–interactive 在覆蓋一個已存在的文件前,提醒用戶進行確認。如果沒有指定該選項,cp會默認覆蓋文件
-r, --recursive 遞歸地複製目錄及其內容。複製目錄時需要該選項
-u,–update 當將文件從一個目錄複製到另外一個目錄時,只會複製哪些目標目錄中不存在的文件或是目標目錄相應的更新文件
-v, --verbose 複製文件時,顯示信息性消息(informative message)

表5 cp命令示例

命令 結果
cp file1 file2 將file1複製到file2,如果file2存在,則會被file1的內容覆蓋,如果file2不存在,則創建file2
cp -i file1 file2 同上,區別在於file2存在時,覆蓋之前會通知用戶確認
cp file1 file2 dir1 將file1和file2複製到目錄dir1裏,dir1必須已經存在
cp dir1/* dir2 通過使用通配符,將dir1中的所有文件複製的dir2中,dir2必須已經存在
cp -r dir1 dir2 將dir1目錄(及其內容)複製到dir2目錄中,如果dir2不存在,創建dir2,且包含與dir1目錄相同的內容.

4. mv——移除和重命名文件

語法與cp類似
mv item1 item2,將文件(或目錄)item1移動(或重命名)爲item2
mv item… directory, 將一個或多個條目從一個目錄移動到另一個目錄下.

表6 mv命令選項

選項 含義
-i ,–interactive 在覆蓋一個已存在的文件前,提醒用戶進行確認。如果沒有指定該選項,cp會默認覆蓋文件
-u,–update 當將文件從一個目錄移動到另外一個目錄時,只會移動哪些目標目錄中不存在的文件或是目標目錄相應的更新文件
-v, --verbose 移動文件時,顯示信息性消息(informative message)

表7 mv命令示例

命令 結果
mv file1 file2 將file1移動到file2,如果file2存在,則會被file1的內容覆蓋,如果file2不存在,則創建file2,無論哪種情況,file1不再存在
mv -i file1 file2 同上,區別在於file2存在時,覆蓋之前會通知用戶確認
mv file1 file2 dir1 將file1和file2移動到目錄dir1裏,dir1必須已經存在
mv dir1 dir2 將dir1(和其內容)移動到dir2中,如果dir2不存在,創建目錄dir2,將dir1的內容移動到dir2下,同時刪除目錄dir1

5.rm——刪除文件和目錄

語法爲 rm item…
表8 rm選項

選項 含義
-i, --interative 刪除一個已存在的文件前,提示用戶確認。如果沒有指定這個選項,rm命令會默認刪除文件
-r, --recursive 遞歸地刪除目錄。要刪除一個目錄,則必須指定該選項
-f,–force 忽略不存在的文件並無需提示確認,該選項會覆蓋–interative選項
-v,–verbose 刪除文件時顯示信息性消息

表9 rm實例
命令 | 結果
rm file1 | 在不提示用戶的情況下,刪除file1
rm -i file1 | 刪除file1前,提示用戶確認
rm -r file1 dir1 | 刪除file1、dir1以及它們的內容
rm -rf file1 dir1 | 同上,當file1或dir1不存在時,rm仍會繼續執行,且不提示用戶

6. ln——創建鏈接

語法:
ln file link,用來創建硬鏈接
ln -s item link, 用來創建軟鏈接

6.1 硬鏈接

當創建一個硬鏈接時,也爲這個文件創建了一個額外的目錄條目,硬鏈接有兩條重要的侷限性:

  • 硬鏈接不能引用自身文件系統之外的文件。也就是說,鏈接不能引用與該鏈接不在同一磁盤分區的文件。
  • 硬鏈接無法引用目錄。
ln fun fun-hard
ln fun dir1/fun-hard
ln fun dir2/fun-hard
ls -li

可通過索引字節號,即第一個字段,來看到fun和fun-hard共享同一個索引節點號。

6.2 符號鏈接

符號鏈接克服了硬鏈接的各種侷限,與windows系統下的快捷方式很像。

ln -s fun fun-sym
ln -s ../fun dir1/fun-sym
ln -s ../fun dir2/fun-sym
ls -l dir1

輸出首字段第1個字段的首字符“l”來確認的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章