콘텐츠 이름 확인을 통해 디렉터리를 생성하는 Bash 스크립트? [폐쇄]

콘텐츠 이름 확인을 통해 디렉터리를 생성하는 Bash 스크립트? [폐쇄]

특정 파일이 포함된 두 개의 디렉터리를 만들고 그 사이에 파일을 복사하는 방법은 무엇입니까?

두 파일의 이름이 같으면 오류가 발생합니다.

답변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

두 디렉터리에서 파일 목록을 가져와서 두 개의 파일에 저장합니다.

디렉터리 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

관련 정보