歡迎您光臨本站 註冊首頁

如果通過find+cp實現拷貝指定後綴的文件(保持目錄結構)

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

如果通過find+cp實現拷貝指定後綴的文件(保持目錄結構)

如題.
我用下面目錄結構沒保存,另外只能拷一級目錄,因為網站目錄非常多,要支持無窮級的子目錄
find /test -name "*.jpg" -exec cp -R {} /test/cs \;
《解決方案》

我還沒得到方案,先把你為什麼得到這個結果說一下:
find /test -name "*.jpg" -exec cp -R {} /test/cs \;

find /test -name "*.jpg" //此部分得到包含.jpg的文件或目錄,(可以加-type f)
                                       //比如/test/dir/subdir/file1.jpg
-exec cp -R {} /test/cs \;// {} 表示所有find得到的信息。
                                        //ex: cp -R /test/dir/subdir/file1.jpg /test/cs
                                        //這樣就只把文件拷貝到了/test/cs,也就只能拷一級目錄,-R參數是對目錄起作用的。
《解決方案》

是啊,我後來嘗試先全部刪除 ,在刪除指定格式,然後剩下的就是我要的了.

另外我今天想了個用壓縮指定格式,不過還是遭遇到目錄問題
《解決方案》

原帖由 miumiusun 於 2008-4-15 09:52 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
是啊,我後來嘗試先全部刪除 ,在刪除指定格式,然後剩下的就是我要的了.

另外我今天想了個用壓縮指定格式,不過還是遭遇到目錄問題


刪除我倒沒想到。壓縮我也嘗試過(昨天tar命令參數有點問題)。
刪除應該可以的,不過如果原來的想保留的話,這個方法有點費空間。但也算個方案。 :)
find /home/frank/workspace/srcdir -type f ! -name "*.jpg" -exec rm {} \;

壓縮,但是目錄會全部包括。再研究下tar命令?
find /home/frank/workspace/srcdir -type f -name "*.jpg" -print | xargs tar -czf /home/frank/workspace/dstdir/tarfile.tar

我昨天碰到的主要問題是對 find 結果, 也就是  {} 的二次處理, 我不是很清楚。 比如用 dirname, basename對路徑做些修改。
《解決方案》

還是你最後的辦法牛

find /www/test -name "*.jpg" | xargs tar -zcvf a.tar.gz


這樣效率最高
《解決方案》

暈啊遭遇到:tar: Removing leading `/' from member names
《解決方案》

絕殺了
tar zcvf aa.tar.gz /test/  --exclude "*.rar"
《解決方案》

原帖由 miumiusun 於 2008-4-15 14:23 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
暈啊遭遇到:tar: Removing leading `/' from member names


這個提示不是出錯。 當用tar壓縮一個絕對路徑時,tar就會把最前面的/去掉。這樣就是相對路徑了。
比如把/home/test 壓縮就成了home/test,這樣解壓時就在當前目錄下生成home/test,如果有前面的/的話就會解壓到/home/test目錄下了。

[火星人 ] 如果通過find+cp實現拷貝指定後綴的文件(保持目錄結構)已經有667次圍觀

http://coctec.com/docs/service/show-post-31048.html