
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_LOCATION
zsh
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