Linux中歸檔檔案並在系統間傳輸檔案
檔案歸檔tar
tar命令能夠列出存檔內容,或者將其檔案提取到當前系統。通過tar,使用者可以將大型檔案集彙集為一個檔案(存檔),該存檔可用gzip,bzip2,xz壓縮方式壓縮
使用歸檔檔案和目錄tar
在建立tar存檔之前,先驗證目錄中沒有其他存檔與要建立的新存檔名稱相同,tar命令將覆蓋現有的存檔,而不提供任何反饋
tar cf name.tar /../.. ---- 建立在當前路徑中的檔案name.tar是由/.../...中的檔案歸檔而成的
要使tar可以歸檔選定的檔案,執行 tar命令的使用者必須要能夠讀取這些檔案
列出tar存檔的內容
tar tf /../../name.tar
提取建立的tar存檔
tar存檔通常應當提取到空目錄中,已確保它不會覆蓋現有的任何檔案。如果由root使用者提取檔案,tar將嘗試保留檔案的原始使用者和組的所有權。如果普通使用者使用tar提取檔案,則提取的檔案由該使用者所有
tar xf /.../name.tar ---- 將絕對路徑下的tar檔案提取到當前路徑中
預設情況下,從存檔中提取檔案時,將從存檔內容的許可權中取出umask,這是一種安全措施,可防止提取的普通檔案預設收到執行許可權,要保留存檔檔案的許可權,可在提取存檔時所使用p選項
tar xfp /.../name.tar
建立壓縮的tar存檔
tar命令支援三種不同的壓縮方式:
gzip(.gz):壓縮速度最快,歷史最久
bzip2(.bz2):壓縮生成的存檔檔案通常比gzip檔案小,但是可用性不如gzip廣泛
xz(.xz):壓縮方式較新,通常提供可用方式中最佳的壓縮率
tar zcf /.../name.tar.gz file ---- 把當前路徑中的檔案歸檔壓縮為gzip檔案並儲存至指定目錄中
tar jcf /.../name.tar.bz2 file---- 把當前路徑中的檔案歸檔壓縮為bzip2檔案並儲存至指定目錄中
tar Jcf /.../name.tar.xz file ---- 把當前路徑中的檔案歸檔壓縮為xz檔案並儲存至指定目錄中
提取壓縮的tar存檔
tar -zxf /.../name.tar.gz ---- 提取目標路徑中gzip檔案提取壓縮至當前目錄
tar -jxf /.../name.tar.bz2 ---- 提取目標路徑中bzip檔案提取壓縮至當前目錄
tar -Jxf /.../name.tar.xz ---- 提取目標路徑中gzip檔案提取壓縮至當前目錄
tar選項概述
選項 | 含義 |
c | 建立一個新存檔 |
x | 從現有存檔提取 |
t | 列出存檔的內容 |
v | 詳細資訊:顯示存檔或提取的檔案有哪些 |
f | 指定生成文件的檔名 |
p | 在提取存檔時保留存檔的許可權,不去除umask |
z | 使用gzip壓縮 |
j | 使用bzip壓縮 |
J | 使用xz壓縮 |
系統間檔案的複製(安全)
檔案複製到遠端主機,或從中複製檔案命令scp
scp命令可以將檔案從遠端主機傳輸到本地系統,或者反之。它利用SSH伺服器進行身份驗證和加密資料的傳輸,在啟動傳輸之前,使用者必須通過密碼或SSH金鑰與SSH伺服器進行身份驗證
scp /.../file [email protected]:/.../... ---- 把當前主機中的檔案複製到遠端主機的指定目錄中
scp -r /.../mkdir [email protected]:/.../... ----把當前主機中的目錄複製到遠端主機的指定目錄中
scp [email protected]:/.../file /.../... ---- 把遠端主機中的檔案複製到當前主機的指定目錄中
遠端傳輸檔案sftp
如果想要在上傳檔案到SSH伺服器或從中下載檔案時使用互動式工具,可以使用sftp命令。sftp的會話與FTP會話相似,但使用SSH伺服器的安全身份驗證機制和加密資料傳輸功能
sftp [email protected] ---- 與遠端主機建立sftp會話
sftp會話接受各種命令,這些命令在遠端檔案系統上執行的方式與在本地檔案系統上相同,此外還有put和get命令供上傳和下載檔案使用,使用exit命令可以退出sftp會話
系統間檔案的同步(安全)
同步檔案和資料夾命令——rsync
rsync工具是在系統之間安全複製檔案的另外一種方式。它與scp的區別在於,如果兩個系統間的兩個檔案或目錄類似,rsync僅需要複製系統間的差異部分,而scp則需要複製所有內容
rsync的一個優點是它能夠在本地系統和遠端系統之間安全而高效地複製檔案
rsync的一個最重要選項是-n選項,它用於執行空執行,空執行是對真正執行命令時所發生情況的模擬,它將顯示在不使用空執行選項執行命令時將執行的更改,建議在任何rsync操作前先執行空執行,以確保重要的檔案不會被覆蓋或刪除
rsync選項:
選項 | 含義 |
-r | 以遞迴方式同步整個目錄 |
-l | 保留檔案快捷方式 |
-p | 保留檔案許可權 |
-t | 保留檔案時間戳 |
-g | 保留檔案所有組 |
-o | 保留檔案所有者 |
-D | 同步裝置檔案 |
rsync /../file [email protected]:/.../... ----把當前主機中的檔案同步到遠端主機的指定目錄中
rsync [email protected]:/.../file /.../... ---- 把遠端主機中的檔案同步到當前主機的目錄中