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

すべての .htaccess ファイルをコピーして名前を .htaccess_cp に変更しますが、サイト上のすべての .htaccess ファイルをコピーして 1 つのディレクトリに配置したいと考えています。問題は、それらすべてに異なる名前を付ける必要があることです。そうしないと、互いに上書きするだけです。理想的には、親ディレクトリのファイル名が必要です。

どんな助けでも大歓迎です。

4

2 に答える 2

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 に答える
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 に答える