如何从输入文件读取文件名并将其复制到不同位置

如何从输入文件读取文件名并将其复制到不同位置

我有 2 个不同的输入文件

文件A:

1.dat
2.dat
3.dat

文件B:

4.dat
5.dat
5.dat

现在,我想找到文件 A 中的每个 dat 文件,然后$LOCATION/想要复制到,$FILE_A_PATH 然后想要找到文件 B 中的每个 dat 文件,然后$LOCATION/想要复制到$FILE_B_PATH

请帮助实现这一目标

答案1

对于 GNUxargscp,这可能是:

(
  cd -P -- "$LOCATION" &&
    xargs -rd '\n' cp -t "$FILE_A_LOCATION" --
) < 'File A'

对于 也一样File B

如果dat要在 的子目录中查找这些文件,并且您想使用 shell$LOCATION复制其中一个(例如最新的 ):$FILE_A_LOCATIONzsh

autoload zargs
cp_from_file() (
  file=$1 dest=$2
  files=( ${(f)"$(<$file)"} )
  newests=( $LOCATION/**/$^files(ND.om[1]) )
  zargs -r -- $newests -- cp -t $dest --
)
cp_from_file 'File A' $FILE_A_LOCATION
cp_from_file 'File B' $FILE_B_LOCATION

相关内容