Linux命令之文件操作
文件拷貝:cp命令
概述
該命令的形式如下,其將源文件復制到指定目的地下。當有多個源文件時,目的地為目錄文件
cp [option] source dest
cp [option] source ... dest_directory
常見可選參數(shù)option如下:
-
-r: 遞歸處理。將源目錄下的文件與子目錄一并復制
拷貝文件
拷貝文件過程中,如果目的文件不存在,其將創(chuàng)建此文件。如果目的文件存在,則會對其覆蓋
cp main.c main.c.backup
Note: 目的文件可以不存在,但是目的文件所在的路徑目錄必須存在,否則命令將報錯
拷貝目錄:連同源目錄本身進行復制(含隱藏文件)
當源文件指定的是一個目錄時,下述命令則可以實現(xiàn)連同源目錄本身一并復制到指定目錄下。此時源目錄中的隱藏文件也將會一并復制過去。注意此時,源目錄的名稱后面不要添加斜杠。因為添加斜杠的命令后在Mac與Linux中的行為表現(xiàn)不一致。為便于記憶,統(tǒng)一使用下述這種源目錄的名稱后面不添加斜杠的形式,實現(xiàn)連同源目錄本身進行復制的目的
# 將springboot1目錄連同源目錄本身(含源目錄中的隱藏文件)復制到target目錄中
cp -r springboot1 target/
拷貝目錄:只對源目錄中的內(nèi)容進行復制(含隱藏文件)
當源文件指定的是一個目錄時,下述命令則可以實現(xiàn)只將源目錄中的內(nèi)容復制到指定目錄下。此時源目錄中的隱藏文件也將會一并復制過去
# 只將springboot1目錄中的內(nèi)容(含源目錄中的隱藏文件)復制到target目錄中
cp -r springboot1/. target/
拷貝目錄:只對源目錄中的內(nèi)容進行復制(不含隱藏文件)
當源文件指定的是一個目錄時,下述命令則可以實現(xiàn)只將源目錄中的內(nèi)容復制到指定目錄下。但不會將源目錄中的隱藏文件復制過去
# 只將springboot1目錄中的內(nèi)容(不含源目錄中的隱藏文件)復制到target目錄中
cp -r springboot1/* target/
文件移動:mv命令
概述
該命令可以實現(xiàn)將文件、目錄移動到指定位置
mv [options] source target
mv [options] source ... dest_directory
重命名
在同一個目錄下,進行文件或目錄移動操作。當目的文件不存在時,本質(zhì)上就是對其重命名操作
# 將當前目錄下的main.c文件,重命名為 main.java
mv main.c main.java
# 將當前目錄下的srcCode目錄,重命名為 src
mv srcCode src/
移動文件
在移動文件的同時,還可以對其進行重命名
# 將當前目錄下的 usrMapper.java文件 移動 src目錄下
mv usrMapper.java src/
# 將當前目錄下的 usrController.java文件 移動 src目錄下,并重命名為 controller.java
mv usrController.java src/controller.java
移動目錄:連同源目錄本身進行移動(含隱藏文件)
當源文件指定的是一個目錄時,下述命令則可以實現(xiàn)連同源目錄本身一并移動到指定目錄下。此時源目錄中的隱藏文件也將會一并移動過去
# 將springboot1目錄連同源目錄本身(含源目錄中的隱藏文件)移動到target目錄中
mv springboot1 target/
移動目錄:只對源目錄中的內(nèi)容進行移動(不含隱藏文件)
當源文件指定的是一個目錄時,下述命令則可以實現(xiàn)只將源目錄中的內(nèi)容移動到指定目錄下。但不會將源目錄中的隱藏文件移動過去
# 只將springboot1目錄中的內(nèi)容(不含源目錄中的隱藏文件)移動到target目錄中
cp -r springboot1/* target/
創(chuàng)建目錄:mkdir命令
概述
該命令創(chuàng)建目錄
mkdir [-pv] [-m mode] directory_name ...
常用選項:
-
-p:批量創(chuàng)建目錄、子目錄 -
-v:顯示創(chuàng)建的目錄 -
-m:指定目錄權(quán)限
創(chuàng)建目錄
創(chuàng)建目錄,命令如下
# 創(chuàng)建名為foo的目錄,目錄權(quán)限為707
mkdir -m 707 foo
# 創(chuàng)建名為demo1的目錄
mkdir demo1
利用-p選項則可以快速的創(chuàng)建一系列的子目錄
# 依次創(chuàng)建出 src、main、java 的父子目錄結(jié)構(gòu)
mkdir -p src/main/java/
查看文件
查看文件類型:file命令
利用file命令可以判斷出文件類型、編碼等信息
# 分析指定文件的文件類型
file filename
對于二進制可執(zhí)行文件而言,file還可以分析出其編譯所面向的平臺及依賴庫等信息
# 分析ls可執(zhí)行文件
file /bin/ls
查看文件整個內(nèi)容
cat、tac命令
cat命令支持查看整個文件。但其會一次性將文件的內(nèi)容全部輸出完畢
# 查看整個文件
cat a.txt
# 查看整個文件,同時添加行號信息
cat -n a.txt
tac命令與cat命令類似,只不過其是將文件內(nèi)容按行反序全部進行輸出的。即輸出的第一行為文件內(nèi)容的最后一行,以此類推
# 按行反序查看整個文件
tac a.txt
more、less命令
cat命令的缺點在于命令執(zhí)行后無法控制后續(xù)操作。而more命令則會在輸出每頁內(nèi)容后暫停下來。常用地瀏覽操作有:通過鍵盤的j、k鍵即可進行往后、往前瀏覽整個文件。結(jié)束后,可按q鍵退出即可。而less命令則是more命令的升級版,其支持更多的文件瀏覽操作
# 查看passwd文件
more /etc/passwd
# 查看passwd文件
less /etc/passwd
查看文件部分內(nèi)容
head命令
head命令可以實現(xiàn)查看文件的頭部。默認顯示文件的前10行
# 顯示文件的前10行
head a.txt
# 顯示文件的前3行
head -3 a.txt
tail命令
tail命令可以實現(xiàn)查看文件的尾部。默認顯示文件的最后10行
# 顯示文件的最后10行
head a.txt
# 顯示文件的最后5行
head -5 a.txt
此外在開發(fā)中,查看日志文件時,常用使用 -f 選項,其會把文件的最尾部的內(nèi)容不斷刷新輸出。實現(xiàn)實時查看日志文件
# 實時查看文件
tail -f a.txt
參考文獻
-
Linux命令行與shell腳本編程大全·第4版 Richard Blum、Christine Bresnahan著
