cp dir1/{file1,file2,file3} dir2 ## 可以實現文件的批量復制
cp -r dir1/ dir2/ ### 實現整個文件夾的復制,r參數表示,如果沒有文件夾dir2/ 則創建一個,如果沒有r參數會報錯。
cp命令並不能直接識別正則表達示,如果要復制的文件很多,會寫命令寫到吐血。
可以用ls查看文件夾內的所有文件,再傳遞給grep 用正則表示示篩選,篩選後的文件名再傳遞給cp命令
需要注意的是cp 不能直接接收 grep的數據,需要用到xargs 命令
xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令。
-i 或者是-I,這得看linux支持了,將xargs的每項名稱,一般是一行一行賦值給 {},可以用 {} 代替。
ls |grep 'M. 1. _M. 2. |M. [1-2]. _P. 18. '|xargs -i cp {} /u01/zhh/300Zeamays/300SCMS/
② 在linux下用mv命令可以批量的移動文件嗎
可以用mv -p命令。
如:mv -p /home/vechina/samples/csi8/test_1 test_2 test_3 /home/vechina/samples/csi10
其中:/home/vechina/samples/csi8/是原路徑;test_1、test_2、test_3是要移動的文件;/home/vechina/samples/csi10是目標路徑。
mv命令介紹:
命令語法:語法:mv[選項]源文件或目錄 目標文件或目錄。
參數介紹:
-i:互動式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統會詢問是否覆蓋,用戶輸入『y進行覆蓋,輸入'n'則不覆蓋,這樣可以避免誤覆蓋文件。
-f:禁止互動式操作。在mv操作要覆蓋某已有的目標文件或目錄時不給任何指示,默認覆蓋。
如果所給目標文件(不是目錄)已存在,此時該文件的內容將後備新文件覆蓋,為防止用戶用mv命令破壞另一個文件,使用mv命令移動文件時,最好使用i選項。
-b:覆蓋文件前先對其進行備份
-S或--suffix=後綴:不理會通常的備份後綴
-u或--update:移動或覆蓋目的文件時若日期比目的文件舊,且目的文件已經存在,則不執行覆蓋文件命令
-t或--target-directory=目錄:移動所以源參數到指定目錄
-T或--no-target-directory:將DEST作為普通文件
--help:顯示幫助信息
-v或--version:顯示版本幫助信息
--verbose:顯示執行的詳細信息
③ linux如何復制移動文件
linux如何復制文件夾和移動文件夾
linux下文件的復制、移動與刪除命令為:cp,mv,rm
一、文件復制命令cp
命令格式:cp [-adfilprsu] 源文件(source) 目標文件(destination)
cp [option] source1 source2 source3 ... directory
參數說明:
-a:是指archive的意思,也說是指復制所有的目錄
-d:若源文件為連接文件(link file),則復制連接文件屬性而非文件本身
-f:強制(force),若有重復或其它疑問時,不會詢問用戶,而強制復制
-i:若目標文件(destination)已存在,在覆蓋時會先詢問是否真的操作
-l:建立硬連接(hard link)的連接文件,而非復制文件本身
-p:與文件的屬性一起復制,而非使用默認屬性
-r:遞歸復制,用於目錄的復制操作
-s:復製成符號連接文件(symbolic link),即「快捷方式」文件
-u:若目標文件比源文件舊,更新目標文件
如將/test1目錄下的file1復制到/test3目錄,並將文件名改為file2,可輸入以下命令:
cp /test1/file1 /test3/file2
二、文件移動命令mv
命令格式:mv [-fiv] source destination
參數說明:
-f:force,強制直接移動而不詢問
-i:若目標文件(destination)已經存在,就會詢問是否覆蓋
-u:若目標文件已經存在,且源文件比較新,才會更新
如將/test1目錄下的file1復制到/test3 目錄,並將文件名改為file2,可輸入以下命令:
mv /test1/file1 /test3/file2
三、文件刪除命令rm
命令格式:rm [fir] 文件或目錄
參數說明:
-f:強制刪除
-i:交互模式,在刪除前詢問用戶是否操作
-r:遞歸刪除,常用在目錄的刪除
如刪除/test目錄下的file1文件,可以輸入以下命令:
rm -i /test/file1
復制:
CP命令
格式: CP [選項] 源文件或目錄 目的文件或目錄
選項說明:-b 同名,備分原來的文件
-f 強制覆蓋同名文件
-r 按遞歸方式保留原目錄結構復制文件
cp -Rf /home/user1/* /root/temp/
將 /home/user1目錄下的所有東西拷到/root/temp/下而不拷貝user1目錄本身。
即格式為:cp -Rf 原路徑/ 目的路徑/
移動:
mv ./WorkReport/web.xml ./WorkReport/WEB-INF/註:移動/WorkReport/web.xml文件到/WorkReport/WEB-INF/mv /data/new/data/old/註:移動/data/new到/data/old/文件夾下
注意點:移動文件夾的話就不要再加 / 了
如果是移動文件夾下的所有文件的話就可以文件夾後面跟上 /*
mv /data/new/* /data/old/
④ linux 移動大量文件
需要移動 460569份文件,直接mv 或者 rm 等,會提示參數列表過長。
使用
```
find . -type f -name 'pfam_scan_temp*.xls' -exec mv {} temp \;
```
可以操作更多一下的文件,但是文件過多還是會提示,如果可以進一步篩選倒也是可以用。
這個更方便,grep 中間的temp替換成你想匹配的文件名,最後的temp是你想移動後的目標目錄:
```
ls |grep temp | xargs -t -I {} mv {} temp
```
⑤ linux按時間批量移動文件
find/data/paic/backup提交問題/aaa-mtime-day1-mtime+day2-name"abc_*.txt"-print0|xargs-I{}mv{}/data/paic/backup/201303/
查找day1天內day2天前的文件,具體天數需要仔細測試調整一下了。。
比如今天是2013-12-3
find/data/paic/backup提交問題/aaa-mtime-4-mtime+2-name"abc_*.txt"|xargs-I{}ls-lrt{}
查找/data/paic/backup提交問題/aaa 目錄下2013-11-29到2013-12-01號的名字元合 abc_*.txt的文件
-mtime modified time
-atime access time
-ctime change time
⑥ Linux環境下,如何批量移動文件到對應文件夾,文件名和文件夾名都是有序的。
用for語句可以解決。相當如些腳本了。
⑦ 在linux下用mv命令可以批量的移動文件嗎
linux下的mv命令可以批量移動文件或文件夾:
批量移動文件到home目錄: mv file1 file2 file3 /home/
批量移動文件夾到home目錄: mv dir1/ dir2/ dir3/ /home/
批量移動相同類型的文件或文件到到home目錄: mv dir* /home/
請參看 mv --help的幫助信息.