linux文件的複製
今天來聊一聊linux系統下文件的複製問題。說到複製,windows下ctrl+c和ctrl+v大家都很熟悉,有的時候在linux系統上也會不自然的按一下ctrl+c,結果可想而知,只是取消了操作而已(一開始我就是這麼手殘)。
其實在linux系統下,複製也很方便,簡單的只要cp或者scp即可。
scp/cp [要複製的內容] [複製的目錄]
-i:複製時如果複製文件名相同,會提示是否覆蓋
-r:複製整個目錄(複製目錄過程中一定要寫上此命令,否則無法複製)
-v:顯示複製進度
當然今天不會只介紹這麼點東西,其實想給大家介紹的是同步命令,rsync。相比於scp命令,rsync對於大文件有著更快的傳輸速度,很適合像二代測序數據fastq.gz文件的複製。
rsync-rvH --progress --log-file=log trans@1.1.1.1:/ ./
#--progress用於顯示複製進程
#log文件用於生成log文件,保留複製文件信息,查詢拷貝過程是否有錯誤
#trans@1.1.1.1用於顯示主機賬戶和IP,如果沒有許可權限制,可以不加
在某些情況下,需要拷貝不同目錄下的文件,需要排除某些類型的文件,就需要用到files_from和exclude_from兩個參數。
指定需要拷貝的文件:
rsync-rvH --progress --log-file=log --files-from=include_file trans@1.1.1.1:/
指定不需要拷貝的文件:
rsync-rvH--progress --log-file=log--exclude-from exclude_file
或者可以排除某種類型的文件:
rsync-rvH--progress --log-file=log --exclude "*.txt"
以上這些命令只適用於拷貝硬鏈接數據,但是對於軟連接數據就無能為力了。
GIF
別急,接下來就要看-L參數的厲害了。
rsync -arvHLP --progress --log-file=log trans@localhost:
#-L參數可以對軟鏈接數據進行處理,找到原始的硬鏈接數據並進行拷貝
#-a參數是另外一個很強大的參數,添加該參數後會保留文件的原始信息,包括屬組信息和創建時間等信息。如果拷貝過程中出錯終端,如果輸出時有log文件,切添加上-aP參數,此時就可以實現續傳,怎麼樣,很強大吧。
TAG:BioInformatic |