別のフォルダ内の他のファイルを置き換える

別のフォルダ内の他のファイルを置き換える

みんな、

私の質問に対する答えが見つからないので、次のようになります。

1つのディレクトリにある10000を超えるPDFファイルを、「同じ」PDFがすでに存在する一意のフォルダに置き換え/配布する「作業」を実行したいと思います(PDF名のみ同じ)。

例: 10000 個を超える PDF ファイルを含む Directory = /my_dir/backup には143079.pdf493857.pdfなどの 10000 個を超える任意の PDF があります。888675.pdf

「作業」は、143079.pdfすでに存在するフォルダ、つまりそのフォルダを検索して/os_dir/pdf/EDFR_29384_euendho置き換える必要があります。したがって、「ジョブ」はそれを見て/my_dir/backup/143079.pdfフォルダから検索を開始し、/os_dir/pdf/そこで検索します/os_dir/pdf/EDFR_29384_euendho/。彼はinをfromに143079.pdf変えなければなりません。彼はすべてのランダムPDFとすべてのランダムフォルダに対して10000回以上これを行う必要がありました。/os_dir/pdf/EDFR_29384_euendho/143079.pdf/my_dir/backup/

これを行う最良の方法は何ですか?

ベストアンサー1

find+bash解決策:

find . -type f -name "*.pdf" -exec bash -c \
'p="/my_dir/backup/"; bn=${1##*/}; 
 [[ "$1" != $p* ]] && [[ -f "${p}$bn" ]] && cp "${p}$bn" "$1"' _ {} \;

  • p="/my_dir/backup/"- 初期(重要)ディレクトリパス
  • bn=${1##*/}- ファイルのデフォルト名

おすすめ記事