我有大约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”)' –