2013-04-23 64 views

回答

0

问题的另一种解释:

file=/usr/public/test.txt 
base=user_$(basename $file) 
dirn=$(dirname $file) 

mv $file $dirn/$base 
cp $dirn/$base /home/home/$base 

既然你规定bash,上面的移植代码可以使用:

file=/usr/public/test.txt 
base=user_${file##*/} 
dirn=${file%/*} 

mv $file $dirn/$base 
cp $dirn/$base /home/home/$base 

的代码需要自由,因为它指出,文件名中没有空格或换行符或其他特殊字符。如果你必须处理这些问题,你必须使用双引号更加小心(自由)。

+0

thnks ...它解决了问题 – user1709815 2013-04-23 13:03:21

2
mv /user/public/test.txt /home/home/user_test.txt 
0

cp可以用新名称复制文件:

cp /user/public/test.txt /home/home/user_test.txt 

如果你也想重命名原始文件,以新的名称,你可以使用mv

mv /user/public/test.txt /user/public/user_test.txt