入力ファイルからファイル名を読み取り、別の場所にコピーする方法

入力ファイルからファイル名を読み取り、別の場所にコピーする方法

2つの異なる入力ファイルがあります。

ファイルA:

1.dat
2.dat
3.dat

ファイルB:

4.dat
5.dat
5.dat

これで、ファイルAですべてのdatファイルを見つけ、ファイルBからすべてのdatファイルを見つけてコピーしたいと思います$LOCATION/$FILE_A_PATH$LOCATION/$FILE_B_PATH

これを達成するのに役立ちます

ベストアンサー1

GNUxargsとGNUの場合は、cp次のようになります。

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

についても同様ですFile B

datのサブディレクトリでこれらのファイルを探していて、$LOCATIONシェルを使用してそれらの1つ(たとえば最新のファイル)をコピーしたい場合:$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

おすすめ記事