コンテンツ名解決でディレクトリを生成するBashスクリプト? [閉鎖]

コンテンツ名解決でディレクトリを生成するBashスクリプト? [閉鎖]

特定のファイルを含む2つのディレクトリを作成し、それらの間にファイルをコピーする方法は?

両方のファイルの名前が同じ場合、エラーが発生します。

答え1

エラー通知があります:

mkdir test1 test2
for i in `ls test1/`; do
  if [ ! -e "test2/$i" ] ; then cp "test1/$i" test2/
  else echo "ERROR: test2/$i already exists" >&2
  fi
done
for i in `ls test2/`; do
  if [ ! -e "test1/$i" ] ; then cp "test2/$i" test1/
  else echo "ERROR: test1/$i already exists" >&2
  fi
done

答え2

エラー通知なし:

mkdir test1 test2
cp --no-clobber test1/* test2/
cp --no-clobber test2/* test1/

答え3

両方のディレクトリからファイルのリストを取得し、2つのファイルに保存します。

ディレクトリ1_File.txt、ディレクトリ2_File.txt。

Directory1からDirectory2にファイルをコピーする必要があるとします。ディレクトリ2にはないファイルのみをディレクトリ1にコピーする必要があります。

find First_directory_path -maxdepth 1 -type f  | awk -F "/" '{print $NF}' > Directory1_files.txt

find Second_directory_path -maxdepth 1 -type f  | awk -F "/" '{print $NF}' > Directory2_files.txt


awk 'NR==FNR {a[$1];next}!($1 in a) {print $1}' Directory2_files.txt Directory1_files.txt >Files_need_to_copy_to_directory_2

awk '{print "cp" " " "directory1path/"$1 " " "directory2path"}' Files_need_to_copy_to_directory_2| sh

関連情報