我正在嘗試將所有*.tif
文件從 ./old 複製到 ./new。在 ./old 中,我有很多包含不同文件的子目錄,在 ./new 中,我只需要 TIF 文件,沒有資料夾樹。
所以,我嘗試了
cp -vR ./old/*.TIF ./new`
但得到了錯誤:
No such file or directory "./old/*.TIF"
我做錯了什麼?
答案1
為此使用查找find . -name "*.TIF" -exec cp {} new \;
所以find
是用來找文件的。該命令表示find
從此處開始的文件.
,其中文件名-name
以 結尾,.tif
請記住用於 shell 擴展的雙引號。所以找到所有tif
文件很簡單。
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
然後我們使用-exec
對文件執行某些操作,在本例中cp
找到{}
目標目錄的文件new
,後面跟著轉義分號\;
答案2
應該是這樣的。您必須輸入舊目錄:
cd old
cp -R *.tif ../new
答案3
.tif
該目錄中可能沒有任何檔案old
。
此外,您可以獲得文件列表並使用簡單的腳本複製它們:
find /old -type f | xargs grep *.tif
會給你清單。
你可以這樣做:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;