Linux檔案操作高頻使用命令
0.新建操作:
mkdir abc #新建一個資料夾
touch abc.sh #新建一個檔案
echo "abc" > test.txt #新建一個檔案,並將abc寫入。這裡用到了重定向符
1.檢視操作
- 檢視目錄:
ll #顯示目錄檔案詳細資訊
du -h 檔案/目錄 #檢視大小
pwd #顯示路徑
-
檢視檔案內容:
cat|head|tail命令
cat abc.txt #檢視abc的內容
head -5 abc.txt #檢視abc前5行內容。預設是10行
tail [選項] 檔名
各選項的含義如下:
+num:從第num行以後開始顯示
-num:從距檔案尾num行處開始顯示。如果省略num引數,系統預設值為10.
-f: 迴圈讀取,例如檢視伺服器日誌時,可以實時觀察
#filename 檔案裡的最尾部的內容顯示在螢幕上,並且不斷重新整理。
tail -f filename
#檢視最後20行
tail -f filename
more命令:
more命令一次顯示一屏資訊,若資訊未顯示完螢幕底部將出現“-More-(xx%)”。
此時按Space鍵,可顯示下一屏內容;
按“回車”鍵,顯示下一行內容;
按B鍵,顯示上一屏;
按Q鍵,可退出more命令。
less命令:和more命令類似,但是比more命令更強大。在很多時候,必須使用less,比如管道。例如:
ll /etc | less
- 檢視狀態或檔案型別:
stat 命令:
檢視檔案的詳細資訊,比如建立修改時間,大小等
[root@localhost zx]# stat index.html
檔案:"index.html"
大小:29006 塊:64 IO 塊:4096 普通檔案
裝置:fd00h/64768d Inode:17589607 硬連結:1
許可權:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
環境:unconfined_u:object_r:home_root_t:s0
最近訪問:2019-09-02 21:47:41.824053666 +0800
最近更改:2019-09-02 21:44:33.588587500 +0800
最近改動:2019-09-02 21:44:33.588587500 +0800
建立時間:-
file命令: Linux中字尾並沒有實際約束意義。
file test.txt #檢視test.txt的檔案型別
du 命令:
選項:-h 以合適的單位顯示(會根據檔案的大小自動選擇kb或M等單位)
[root@localhost zx]# du -h index.html
32K index.html
2.刪除操作
rm -f aa.txt #強制刪除aa.txt
rm -rf fileDir #強制刪除fileDir資料夾和裡邊的所有檔案
3.複製操作
- 同一機器的複製:
cp:複製檔案或目錄
語法:
cp [options] source dest
-a:此選項通常在複製目錄時使用,它保留連結、檔案屬性,並複製目錄下的所有內容。其作用等於dpR引數組合。
-d:複製時保留連結。這裡所說的連結相當於Windows系統中的快捷方式。
-f:覆蓋已經存在的目標檔案而不給出提示。
-i:與-f選項相反,在覆蓋目標檔案之前給出提示,要求使用者確認是否覆蓋,回答"y"時目標檔案將被覆蓋。
-p:除複製檔案的內容外,還把修改時間和訪問許可權也複製到新檔案中。
-r:若給出的原始檔是一個目錄檔案,此時將複製該目錄下所有的子目錄和檔案。
-l:不復制檔案,只是生成連結檔案。
舉例:
#將../html/index.html 複製到當前目錄
cp ../html/index.html .
#將../html/ 目錄下的檔案及子目錄複製到當前的tt目錄下,如果tt不存在,會自動建立
cp -r ../html/ tt/
#將檔案file複製到目錄/usr/men/tmp下,並改名為file1
cp file /usr/men/tmp/file1
#如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2
#如果這時使用cp -r dir1 dir2,則也會將dir1目錄複製到dir2中,明顯不符合要求。
ps:dir1、dir2改成對應的目錄路徑即可。
- 遠端複製
#將當前目錄下的test.txt複製到遠端111.12機器的/zx目錄下
scp test.txt root@192.168.111.12:/zx
#將test.txt複製到遠端使用者的根目錄,並命名為textA.txt
scp test.txt root@192.168.111.12:testA.txt
#也可以不指定使用者,在後續提示中再輸入,如下:
scp test.txt 192.168.111.12:/zx
#從遠端複製到本地: -r用於遞迴整個目錄
scp -r remote_user@remote_ip:remote_folder local_path
4.移動操作:
移動操作可以理解成複製檔案後,刪除原檔案。
eg1:
mv /zx/soft/* . #複製/zx/soft目錄中的所有檔案到當前目錄
mv a.txt ./test/a.txt #複製當前目錄a.txt到當前的test目錄下。
mv a.txt ./test/ -f #移動到test目錄,如果存在就覆蓋
mv /zx/soft/ /tmp/soft #複製資料夾到/tmp/下,必須保證tmp是存在的資料夾
5.重新命名操作:
重新命名還是用的移動操作命令,比如:
#將目錄(檔案)A重新命名為B
mv A B
#將/a目錄(檔案)移動到/b下,並重新命名為c。要保證b目錄存在。
mv /a /b/c
#將當前test1目錄移動到當前的test目錄並命名為b
mv ./test1 ./test/b
6.解壓壓縮操作
tar
-c: 建立壓縮檔案
-x:解壓
-t:檢視內容
-r:向壓縮歸檔檔案末尾追加檔案
-u:更新原壓縮包中的檔案
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。
-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將檔案解開到標準輸出
下面的引數-f是必須的
-f: 使用檔案名字,切記,這個引數是最後一個引數,後面只能接檔案名。
三、舉例說明:
tar -cf all.tar *.jpg
這條命令是將所有.jpg的檔案打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的檔名。
tar -tf all.tar
這條命令是列出all.tar包中所有檔案,-t是列出檔案的意思
tar -xf all.tar
這條命令是解出all.tar包中所有檔案,-x是解開的意思
壓縮
tar –cvf jpg.tar *.jpg //將目錄裡所有jpg檔案打包成jpg.tar
eg2:
tar -xzf nginx-1.14.0.tar.gz //解壓到當前目錄
tar -zxf nginx-1.14.0.tar.gz -C /usr/local/nginx #解壓到對應目錄
eg3:
tar -zxvf nginx...tar.gz #解壓並顯示過程
注意:有些壓縮程式提示命令找不到,需要進行安裝,例如:
yum install unzip
或在ubuntu上:
apt-get install unzip
四、總結
1、*.tar 用 tar –xvf 解壓
2、*.gz 用 gzip -d或者gunzip 解壓
3、*.tar.gz和*.tgz 用 tar –xzf 解壓
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
5、*.tar.bz2用tar –xjf 解壓
6、*.Z 用 uncompress 解壓
7、*.tar.Z 用tar –xZf 解壓
8、*.rar 用 unrar e解壓
9、*.zip 用 unzip 解壓
解壓的時候,有時候不想覆蓋已經存在的檔案,那麼可以加上-n引數
unzip -n test.zip
unzip -n -d /temp test.zip
只看一下zip壓縮包中包含哪些檔案,不進行解壓縮
unzip -l test.zip
檢視顯示的檔案列表還包含壓縮比率
unzip -v test.zip
檢查zip檔案是否損壞
unzip -t test.zip
如果已有相同的檔案存在,要求unzip命令覆蓋原先的檔案
unzip -o test.zip -d /tmp/
示例:
eg1: unzip mydata.zip -d mydatabak #解壓到mydatabak目錄
eg2 :zip -r xxx.zip ./* #壓縮當前目錄下的內容為一個xxx.zip
10. xz
這是兩層壓縮,外面是xz壓縮方式,裡層是tar壓縮,所以可以分兩步實現解壓
$ xz -d node-v6.10.1-linux-x64.tar.xz
$ tar -xvf node-v6.10.1-linux-x64.tar
7.上傳檔案工具
從本地windows上傳一些檔案到遠端Linux伺服器可以通過xshell的xftp也可以通過下面這個小工具lrzsz,使用更加方便。
yum install lrzsz #安裝工具
常用命令:
sz dist.zip #下載檔案dist.zip到本地
rz #會開啟視窗,上傳檔案到遠端伺服器
8.ln、file和touch命令
-
ln命令:名用於建立連結檔案,包括硬連結(Hard Link)和符號連結(Symbolic Link) 。我們常用的是符號連結,也稱軟連線。軟連線就類似windows裡的快捷方式。
示例:
#在當前目錄建立一個軟連線,指向/etc/fastab,名稱也是fastab ln -s /etc/fastab #在當前目錄建立一個指向/boot/grub的軟連線,命名為gb ln -s /boot/grub gb
注意:刪除軟連線 正確方式是:
rm -rf ./gb
錯誤方式:
rm -rf ./gb/
這樣會刪除了原有grub下的內容。特別是針對系統檔案的軟連線,刪除一定要慎重。
-
file命令 用於識別檔案的型別
Linux中檔案字尾只是方便使用者識別,沒有實質的約束作用。file命令可以檢視檔案的實質型別:
file [-bcLz] 檔案|目錄
選項說明:
- 檔案|目錄:需要識別的檔案或目錄
- -b: 顯示識別結果時,不顯示檔名
- -c: 顯示執行過程
- -L: 直接顯示符號連結檔案指向的檔案型別
- -z: 嘗試去解讀壓縮檔案的內容
示例: 可以看出,index.mp4本質是一個HTML而非一個mp4檔案
[root@VM_0_13_centos soft]# file index.mp4
index.mp4: HTML document, UTF-8 Unicode text, with very long lines
-
touch命令: 用於改變檔案或目錄的訪問時間和修改時間。
touch [-am] [-t<日期時間>] [目錄|檔案]
如果指定目錄檔案不存在,則會直接建立一個空檔案,所以touch也常用來建立一個空白檔案
#建立一個新檔案aa.txt touch aa.txt
選項說明:
- -a: 只修改訪問時間
- -m : 只修改 修改時間
- -t : 使用指定日期時間,而非系統時間 。例如要修改為2019年10月20日16:38分13秒。引數就是:‘20191020163813’
示例:
修改之前可以先檢視檔案的時間戳: 用stat 命令檢視
[root@VM_0_13_centos soft]# stat index.html File: ‘index.html’ Size: 17215 Blocks: 40 IO Block: 4096 regular file Device: fd01h/64769d Inode: 529352 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-10-23 15:15:37.280616254 +0800 Modify: 2019-10-23 15:15:37.280616254 +0800 Change: 2019-10-23 15:15:37.290616257 +0800 Birth: -
開始修改:將index.html檔案的訪問和修改時間修改成當前系統的時間。
touch index.html
9.查詢操作命令:
對於要用到的檔案,目錄等,經常有忘記的時候,所以查詢命令就顯得極為必要:
-
find: 查詢檔案或目錄 (常用)
語法如下:
find [目錄…] [-amin <分鐘>] [-atime <24小時數>] [-cmin <分鐘>] [-ctime<24小時數>][-empty][-exec<執行命令>][-fls<列表檔案>][-follow] [-fstype <系統檔案型別>] [-gid <組編號>] [-group <組名稱>] [-nogroup] [-mmin <分鐘>] [-mtime <24小時數>] [-name <查詢內容>] [-nogroup] [-nouser] [-perm <許可權數值>] [-size <檔案大小>] [-uid <使用者編號>] [-user <使用者名稱稱>] [-nouser]
幾個常用選項說明:
- -size <檔案大小>:查詢符合指定大小的檔案。檔案大小單位可以是“c”表示Byte;“k”表示KB。如配置為“100k”,find命令會查詢檔案大小正好100KB的檔案;配置為“+100k”,find命令會查詢檔案大小大於100KB的檔案;配置為“-100k”,find命令會查詢檔案大小小於100KB的檔案。
- -user<使用者名稱稱>:查詢所有者是指定使用者的檔案或目錄,也能以使用者編號指定
- -name <查詢內容>:查詢指定的內容,在查詢內容中使用“*” 表示任意個字元;使用“?”表示任何一個字元
- -mtime <24小時數>:查詢在指定時間曾更改過內容的檔案或目錄,單位以24小時計算。如配置為2,find命令會查詢剛好在48小時之前更改過內容的檔案;配置為+2,find命令會查詢超過在48小時之前更改過內容的檔案;配置為-2,find命令會查詢在48小時之內更改過內容的檔案。
- -mmin <分鐘>:查詢在指定時間曾被更改過內容的檔案或目錄,單位以分鐘計算。
- cmin <分鐘>:查詢在指定時間曾被更改過許可權屬性的檔案或目錄,單位以分鐘計算。-ctime對應小時。
- -amin <分鐘>:查詢的是指定時間訪問過的檔案或目錄。-atim對應小時。
- -perm <許可權數值>:查詢符合指定許可權數值(有關許可權數值見第6章)的檔案或目錄。如配置為“0700”,find命令會查詢許可權數值正好是“0700”的檔案或目錄;配置為“+0700”,find命令會查詢許可權數值大於 “0700”的檔案或目錄;配置為“-0700”,find
選項大概有以下幾類:
1.按時間範圍查詢
2.按檔案大小查詢
3.按檔名稱查詢
4.按其他:比如許可權、使用者組、型別等
示例:
#從根目開始,查詢名稱以nginx開頭的目錄和檔案 find / -name nginx* #查詢檔案大小超過100M的檔案 find / -size +100M #查詢/home/zx目錄下,10分鐘內被修改過的檔案和目錄 find /home/zx/ -mmin -10
-
locate: 查詢檔案或目錄(不常用)
locate 查詢內容
例如:locate nginx 會將所有包含nginx的目錄和檔案都列出來。可以用* 或?等匹配符。
locate的查詢速度非常快,因為該命令查詢的是資料庫,所以有些剛修改的檔案和目錄,可能無法找到。可以採用:updatedb 命令更新資料庫。
-
which: 查詢檔案(不常用)
which [檔案]
which命令只會在PATH環境變數定義的路徑及命令別名中查詢,所以範圍有限。
-
whereis : 查詢檔案(不常用)
whichis [-bu] [-B<目錄>] [-M<目錄>] [-S<目錄>] [檔案]
常用選項:
檔案:要查詢的命令
-b: 只查詢二進位制檔案
-u: 查詢不包含指定型別的檔案
-B<目錄>: 只在指定目錄下查詢二進位制檔案
-M<目錄>:只在指定目錄查詢幫助檔案
-S<目錄>:只在指定目錄查詢原始碼目錄
例如: 預設只會在指定目錄查詢(/bin ,/etc ,/usr)
[root@VM_0_13_centos soft]# whereis nginx nginx: /usr/local/nginx /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
相關文章
- Linux常用檔案操作命令Linux
- Linux常用命令:檔案操作命令Linux
- 在 Linux 中使用ImageMagick命令列操作影像檔案Linux命令列
- Linux常用的文字檔案操作命令Linux
- 使用 split 命令分割 Linux 檔案Linux
- 快速上手Linux核心命令(三):檔案和目錄操作命令Linux
- linux 檔案操作Linux
- linux伺服器目錄檔案的命令操作Linux伺服器
- 4、Linux入門學習筆記 檔案操作命令Linux筆記
- Linux檔案IO操作Linux
- Linux雲端計算中的高頻命令Linux
- Linux----12 檔案與檔案操作Linux
- 『學了就忘』Linux基礎命令 — 20、檔案操作的相關命令Linux
- 014 Linux 線上高頻使用以及面試高頻問題——如何查詢大檔案並安全的清除?Linux面試
- Linux刪除檔案命令Linux
- 【知識分享】linux伺服器目錄檔案的命令操作Linux伺服器
- Linux常見命令-目錄檔案命令Linux
- linux每日命令(30):Linux 使用者及使用者組相關檔案、命令詳解Linux
- Linux檔案管理相關命令Linux
- linux常用檔案命令(自家用)Linux
- linux 查詢檔案命令 findLinux
- linux複製檔案到另一個資料夾怎麼操作 linux複製檔案的命令介紹Linux
- Linux學習之檔案操作Linux
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- Linux基礎學習系列——Linux檔案目錄操作命令Linux
- linux每日命令(25):Linux檔案型別與副檔名Linux型別
- 每天一個Linux命令-使用du檢視檔案大小Linux
- Linux基礎命令---lp列印檔案Linux
- Linux基礎命令---lpr列印檔案Linux
- linux檔案與目錄管理命令Linux
- linux檔案壓縮和解壓命令Linux
- linux中用touch命令建立新檔案Linux
- Linux檔案許可權管理命令Linux
- Linux 檢視系統檔案命令Linux
- Linux基楚操作指引【檔案改名、檔案備份、檔案刪除】Linux
- Linux 命令列刪除指定副檔名檔案Linux命令列
- Linux基本操作命令Linux