例如,我想从不同的目录中复制“file-to-copied -txt”
/home/user1/file-to-be-copied.txt
/home/user2/file-to-be-copied.txt
/home/user3/file-to-be-copied.txt
然后根据用户帐户
创建一个新目录/home/user4/user1/
/home/user4/user2/
/home/user4/user3/
然后将“file-to-copied -txt”复制到新创建的目录
/home/user4/user1/file-to-be-copied.txt
/home/user4/user2/file-to-be-copied.txt
/home/user4/user3/file-to-be-copied.txt
我所知道的是它应该使用bash脚本来完成,但我不知道如何。就我而言
find /home . "file-to-be-copied.txt" | xargs -i mkdir ... cp {} ...
答案 0 :(得分:2)
没有必要,更多的是:没有xargs(这几乎总是多余的find,因为find有-exec)。
cd /home
cp --parents user?/file-to-be-copied.txt user4
答案 1 :(得分:1)
for f in $(/usr/bin/find '/home' -name 'file-to-be-copied.txt'); do
tmpname=${f%/*}
dirname=${tmpname##*/}
/bin/mkdir -p $dirname && /bin/cp -p $f $dirname
done
答案 2 :(得分:0)
这是我使用的代码。
for f in $(find '/home' -name 'file-to-be-copied.txt')
do
tmpname=${f%/*}
dirname=${tmpname##*/}
mkdir -p /home/user4/$dirname && /bin/cp -p $f /home/user4/$dirname
echo $f copied to /home/user4/$dirname
done