【发布时间】:2019-10-08 05:14:29
【问题描述】:
我有一个托管在服务器上的大型项目,其中包含我想要复制到本地计算机的相同文件夹结构中的特定文件,但只有我想要的特定文件。我当前查找这些文件的命令是(在服务器上的项目中):
find ./ -type f -name '*_out.csv' ! -path './*/doc/*' 2>/dev/null
生成这样的列表(为简洁起见被截断):
./validation/Riso_AN8/analysis/Riso_AN8_out.csv
./validation/FUMEXII_Regate/analysis/Regate_smeared_out.csv
./validation/FUMEXII_Regate/analysis/Regate_discrete_out.csv
./validation/IFA_432/analysis/rod3/IFA_432_rod3_out.csv
./validation/IFA_432/analysis/rod1/IFA_432_rod1_out.csv
./validation/IFA_432/analysis/rod2/IFA_432_rod2_out.csv
./validation/LOCA_REBEKA_cladding_burst_tests/analysis/rebeka_2d_06MPa/rebeka_singlerod_2d_06MPa_out.csv
./validation/LOCA_REBEKA_cladding_burst_tests/analysis/rebeka_2d_06MPa/rebeka_singlerod_2d_06MPa_tm_out.csv
./validation/LOCA_REBEKA_cladding_burst_tests/analysis/rebeka_2d_08MPa/rebeka_singlerod_2d_08MPa_tm_out.csv
我想使用scp 或rsync 将这些文件拉到我的本地计算机并创建文件夹结构,其中不包含任何其他内容。解决此问题的最佳方法是什么?我有 吨 的文件,所以我真的不想事先创建文件夹结构。我也无法从服务器中提取整个项目,因为它很大,系统管理员会生我的气。
有没有办法拉取这些文件,同时在我的本地机器上创建文件夹结构?
【问题讨论】:
-
使用
dirname提取路径名的目录部分,并使用mkdir -p创建本地目录结构。然后使用rsync或scp将文件复制到该目录。 -
我认为您可以只使用
rsync和-include和-exclude选项来复制您想要的文件。