文章目錄
- Linux文件相關命令
- ls
- 通配符含義
- touch 創建文件命令
- 示例
- cp 拷貝文件
- rm 刪除文件
- mv剪切文件
Linux文件相關命令
ls
ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似于DOS下的dir命令。
Linux文件或者目錄名稱最長可以有256個字符,“.”代表當前目錄,“…”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
參數 | 含義 |
---|---|
-a | 顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
-l | 以列表方式顯示文件的詳細信息 |
-h | 配合 -l 以人性化的方式顯示文件大小 |
通配符含義
通配符 | 含義 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te開頭的文件 |
ls *html | 查找結尾為html的文件 |
? | 代表文件名中任意一個字符 |
ls ?.c | 只找第一個字符任意,后綴為.c的文件 |
ls a.? | 只找只有3個字符,前2字符為a.,最后一個字符任意的文件 |
[] | [”和“]”將字符組括起來,表示可以匹配字符組中的任意一個。“-”用于表示字符范圍。 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f范圍內的的任意一個字符 |
ls [a-f]* | 找到從a到f范圍內的的任意一個字符開頭的文件 |
ls a-f | 查找文件名為a-f的文件,當“-”處于方括號之外失去通配符的作用 |
\ | 如果要使通配符作為普通字符使用,可以在其前面加上轉義字符。“?”和“*”處于方括號內時不用使用轉義字符就失去通配符的作用。 |
ls *a | 查找文件名為*a的文件 |
#顯示當前目錄下所有的文件和目錄
wuyou@itcast:/home$ ls
app wuyou tom#顯示當前目錄下所有的文件和目錄 包括隱藏文件
wuyou@itcast:/home$ ls -a
. .. app wuyou tom#以長格式顯示文件和目錄信息
wuyou@itcast:/home$ ls -l
總用量 12
drwxr-xr-x 2 app app 4096 9月 14 12:20 app
drwxr-xr-x 27 wuyou wuyou 4096 11月 3 15:02 wuyou
drwxr-xr-x 2 tom tom 4096 6月 1 15:15 tom#-lh -l -h 文件大小以人類方便閱讀數字顯示
wuyou@itcast:/home$ ls -lh
總用量 12K
drwxr-xr-x 2 app app 4.0K 9月 14 12:20 app
drwxr-xr-x 27 wuyou wuyou 4.0K 11月 3 15:02 wuyou
drwxr-xr-x 2 tom tom 4.0K 6月 1 15:15 tom
wuyou@itcast:/home$
touch 創建文件命令
-
如果文件不存在, 創建新文件(只能是普通文件,不能是文件夾)
-
如果文件存在, 更新文件時間戳
touch file 創建file空文件,如果file存在則更新file的存取和修改時間
touch file{2,3,4} 同時創建file2,file3,file4三個空文件
touch “file{2,3,4}” 創建file{2,3,4}一個空文件
示例
#如果文件a不存在就創建 如果存在就修改時間戳
wuyou@itcast:~/share$ touch a
wuyou@itcast:~/share$ ls
a#創建文件file1到file10
wuyou@itcast:~/share$ touch file{1..10}
wuyou@itcast:~/share$ ls
a file1 file10 file2 file3 file4 file5 file6 file7 file8 file9#創建file{1..10}
wuyou@itcast:~/share$ touch "file{1..10}"
wuyou@itcast:~/share$ ls
a file10 file2 file4 file6 file8
file1 file{1..10} file3 file5 file7 file9
wuyou@itcast:~/share$ #查看文件屬性 修改文件的時間戳
wuyou@itcast:~/share$ stat a 文件:a大小:0 塊:0 IO 塊:4096 普通空文件
設備:801h/2049d Inode:674876 硬鏈接:1
權限:(0664/-rw-rw-r--) Uid:( 1000/ wuyou) Gid:( 1000/ wuyou)
最近訪問:2019-11-03 16:22:39.415481402 +0800
最近更改:2019-11-03 16:22:39.415481402 +0800
最近改動:2019-11-03 16:22:39.415481402 +0800
創建時間:-
wuyou@itcast:~/share$ ls
a file10 file2 file4 file6 file8
file1 file{1..10} file3 file5 file7 file9
wuyou@itcast:~/share$ touch a
wuyou@itcast:~/share$ stat a 文件:a大小:0 塊:0 IO 塊:4096 普通空文件
設備:801h/2049d Inode:674876 硬鏈接:1
權限:(0664/-rw-rw-r--) Uid:( 1000/ wuyou) Gid:( 1000/ wuyou)
最近訪問:2019-11-03 16:25:00.888865371 +0800
最近更改:2019-11-03 16:25:00.888865371 +0800
最近改動:2019-11-03 16:25:00.888865371 +0800
創建時間:-
wuyou@itcast:~/share$
cp 拷貝文件
cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當于DOS下的copy命令 。
常用選項說明:
選項 | 含義 |
---|---|
-a | 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,并遞歸地復制目錄,簡單而言,保持文件原有屬性。 |
-f | 刪除已經存在的目標文件而不提示 |
-i | 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認 |
-r | 若給出的源文件是目錄文件,則cp將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。 |
-v | 顯示拷貝進度 |
示例:
cp file dirs/ 把file文件復制到dirs目錄下
cp file1 file2 dirs/ 把file1 file2文件拷貝到dirs目錄下
cp -i file1 file2 把文件file1拷貝到file2中,并且提示
cp -t dirs file1 把文件file1拷貝到dirs目錄下
cp -r dir1/ dir2/ 把dir1目錄復制到dir2目錄下
cp -R dir1 dir2 把dir1目錄拷貝到dir2目錄下
cp -a file dirs/ 把file文件復制到dirs目錄下,保留文件的原來屬性
cp -rf dir1/ dir2/ 強制復制文件夾,不提示
cp -rvf dir1/ dir2/ 把dir1目錄復制到dir2目錄下,并且顯示復制過程
rm 刪除文件
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
參數 | 含義 |
---|---|
-i | 以進行交互式方式執行 |
-f | 強制刪除,忽略不存在的文件,無需提示 |
-r | 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數 |
示例:
rm a 刪除文件a,在刪除之前用戶需確認刪除該文件
rm a b c 刪除文件a b c,在刪除之前用戶需確認是否刪除該文件
rm -i a 刪除文件a,在刪除之前用戶需確認是否刪除該文件
rm -f a 刪除文件a,強制刪除該文件,不需要用戶確認是否刪除
rm -v a 刪除文件a,刪除之后會顯式結果
rm -r dirs 遞歸刪除目錄dirs,并且每一次刪除都需要用戶確認是否刪除
rm -rf dirs 強制遞歸刪除目錄dirs,每一次刪除都不需要用戶確認是否刪除
rm file* 刪除所有file打頭的文件
rm -i file* 提示是否確定刪除
rm -f file* 不提示,強行刪除
rm -r dir2 刪除目錄
rm -f [ab].txt 等價于rm -f a.txt b.txt
rm -f [^ab].txt 刪除除a.txt b.txt以外的所有?.txt
rm -f ?.txt ?代表一個字符
rm -f ???.txt
mv剪切文件
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:
選項 | 含義 |
---|---|
-f | 禁止交互式操作,如有覆蓋也不會給出提示 |
-i | 確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件 |
-v | 顯示移動進度 |
示例:
mv file file2 把file文件重命名為file2
mv file dirs/ 把file文件移動到dirs目錄下
mv file1 file2 dirs/ 把file1 file2文件剪切到dirs目錄下
mv dir1 dir2 dir3/ 把dir1 dir2目錄剪切到dir3目錄下
mv -i file1 dir1/ 把file1文件剪切到dir1目錄下,如果存在覆蓋就提示用戶
mv -f file1 dir1/ 把file1文件剪切到dir1目錄下,如果存在覆蓋也不提示用戶
mv -u dir1/* dir2/ 把dir1目錄下所有文件移動到dir2目錄下,并且根據文件時間來決定要不要移動