您好,登錄后才能下訂單哦!
怎么在Linux中使用使用命令對文件進行高頻操作?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
0.新建操作:
mkdir abc #新建一個文件夾 touch abc.sh #新建一個文件
1.查看操作
查看目錄:
ll #顯示目錄文件詳細信息
查看文件內容:
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 創建時間:-
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 /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目錄 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是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
看完上述內容,你們掌握怎么在Linux中使用使用命令對文件進行高頻操作的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。