1
find /www/ -iname ".htaccess" -exec cp {} {}_cp \;

将复制所有 .htaccess 文件并将它们重命名为 .htaccess_cp 但我想做的是复制站点上的所有 .htaccess 文件并将它们放在一个目录中。问题是他们都需要有一个不同的名字,否则他们只会互相覆盖。理想情况下,我希望他们拥有父目录的文件名。

任何帮助,将不胜感激。

4

2 回答 2

0

你可以尝试这样的事情:

find /www -name '.htaccess' -exec bash -c 'newfile=${1}_cp; if [[ ! -e $newfile ]]; then
   cp "$1" "$newfile"
else 
   count=1 
   while true; do 
      if [[ ! -e ${1}_cp.$count ]]; do 
         cp "$1" "${1}_cp.$count" 
         break
      else 
         ((count++))
      fi
   done 
fi' -- {} \;
于 2012-05-24T19:06:12.337 回答
0

也许是这样的:

for file in $(find /www/ -iname ".htaccess"); do  
    new_file_name=$(echo $file | sed 's#/#_#g')
    cp $file $new_file_name
done
于 2012-05-24T20:01:30.203 回答