我有大約1000個文件夾,我想提取單個文件從上傳到服務器,但我需要保留目錄樹。保存目錄樹,同時複製文件與cp
cp */myFile.txt ../newTree
是什麼,我基本上是想這樣做,但不是每個文件被保存到../newTree/myFile.txt
我想這是../newTree/*/myFile.txt
其中*
從cp
命令通配符。
我不能在這個男人文件中找到一個標誌,所以我想我可能需要除了cp
我有大約1000個文件夾,我想提取單個文件從上傳到服務器,但我需要保留目錄樹。保存目錄樹,同時複製文件與cp
cp */myFile.txt ../newTree
是什麼,我基本上是想這樣做,但不是每個文件被保存到../newTree/myFile.txt
我想這是../newTree/*/myFile.txt
其中*
從cp
命令通配符。
我不能在這個男人文件中找到一個標誌,所以我想我可能需要除了cp
其他實用程序使用rsync:
find ./ -name myFile.txt -print0|rsync -0adv --files-from=- ./ ../newTree/
沒有的rsync:
您可以找到所有文件,爲您在newTree中創建目錄的每個文件,並將文件複製到它。
for file in */myFile.txt; do
dir=$(dirname "$file")
mkdir -p "../newTree/$dir"
cp "$file" "../newTree/$dir"
done
存儲所有在tar
存檔文件,然後提取到服務器上。
或者執行相同的操作,將輸出從tar發送到標準輸出,然後管道到另一個tar程序將解壓stdin:'find ./ -name myFile.txt -print0 | tar cvf - | tar xvf - -C ../ newTree /' –
謝謝,我不太瞭解rsync,但我會研究它。該腳本更符合我的舒適程度 –
只需跟進一下,它應該是'dir = $(dirname「$ file」)' –