Linux下,拷貝文件時,排除某些文件


 

 一下是自己用到到幾次實踐,覺得很贊:
 
1.拷貝文件時,排除某些不需要的文件:
 
1)使用xargs來做:
  ls /tmp/test/ |grep -v .gz |xargs -i cp -r /tmp/test/{} /tmp/test_cp
 
 
2)使用find+cpio的方式:
  find /tmp/test/ |grep -v .gz |cpio -pdm /tmp/test_cp/
 
3) 使用rsync來做:
  rsync -avp --exclude = /tmp/test/xxx  /tmp/test_cp/
 
 
 
查找資料:

Linux下xargs命令詳解

 

xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割為一些足夠小的塊,以方便過濾器和命令進行處理。通常情況下,xargs從管道或者stdin中讀取數據,但是它也能夠從文件的輸出中讀取數據。xargs的默認命令是echo,這意味着通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。

xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然后傳遞給另外一個命令,下面是一些如何有效使用xargs 的實用例子。

1. 當你嘗試用rm 刪除太多的文件,你可能得到一個錯誤信息:/bin/rm Argument list too long. 用xargs 去避免這個問題

find ~ -name ‘*.log’ -print0 | xargs -0 rm -f

 

2. 獲得/etc/ 下所有*.conf 結尾的文件列表,有幾種不同的方法能得到相同的結果,下面的例子僅僅是示范怎么實用xargs ,在這個例子中實用 xargs將find 命令的輸出傳遞給ls -l

# find /etc -name "*.conf" | xargs ls –l


3. 假如你有一個文件包含了很多你希望下載的URL, 你能夠使用xargs 下載所有鏈接

# cat url-list.txt | xargs wget –c

 

4. 查找所有的jpg 文件,並且壓縮它

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz


5. 拷貝所有的圖片文件到一個外部的硬盤驅動 

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

 

xargs資料轉自:http://blog.csdn.net/sunboy_2050/article/details/7303501

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM