ディレクトリから別のファイルを再帰的に検索する方法は?

ディレクトリから別のファイルを再帰的に検索する方法は?

x.tarディレクトリにファイルがあります/a。解凍すると、x.tar次のような結果が得られます。

cust/
cust/01/
cust/01/INFENG/
cust/01/INFENG/scr/
cust/01/INFENG/scr/test.scr
cust/01/INFENG/SQL/
cust/01/INFENG/SQL/test.sql
cust/01/INFENG/MRT/

ディレクトリは、指定されたディレクトリ構造を使用してcust作成されます。/a今私がしなければならないことは、パス内の既存のファイルを保護し、それを/a

cust/01/INFENG/scr/test.scrたとえば、.tarファイルを解凍して取得したファイルに置き換える前に、(既存の)ファイルを保護する必要があります/a

を使用していますksh

ベストアンサー1

次のことを試すことができます。

#!/usr/bin/env ksh
a_files=( $(find /path/to/a/ -type f) )

for file in "${a_files[@]}"; do
        mv "/path/to/app${file##*a}" "/path/to/app${file##*a}.bak"
        mv "$file" "/path/to/app${file##*a}"
done

a/とがapp/同じディレクトリにある場合(例/home/user/{a,app}:):

#!/usr/bin/env ksh
a_files=( $(find /home/user/a/ -type f) )

for file in "${a_files[@]}"; do
        mv "${file%%a/*}app${file##*/a}" "${file%%a/*}app${file##*/a}.bak"
        mv "$file" "${file%%a/*}app${file##*/a}"
done

/home/user/app/まず、拡張子asのファイルをバックアップして.bakから/home/user/a

おすすめ記事