Linux에서 특정 이름으로 새로 생성된 폴더에 파일 자동 복사
3385 단어 automationinotifywait
/home/
에 readme.txt 파일이 있고 이름이 junk 또는 secret인 /home/johndoe/
내에 생성된 모든 새 폴더에 복사되기를 원합니다.요구 사항
inotifywait가 설치되어 있어야 합니다.
sudo apt install inotify-tools
스크립트
#!/bin/bash
inotifywait -m -r -e create,move ~/johndoe |
while read dir op file
do if [[ $op == "CREATE,ISDIR" && $file == 'junk' || $file == 'secret' ]]
then cp ~/readme.txt "${dir}/${file}/readme.txt"
elif [[ $op == "MOVED_TO,ISDIR" && $file == 'junk' || $file == 'secret' ]]
then cp ~/readme.txt "${dir}/${file}/readme.txt"
else :
fi
done
chmod +x copier.sh
를 사용하여 스크립트를 실행 가능하게 만듭니다.코드 설명
inotifywait -m -r -e create,move ~/johndoe
-m
: 1회 이후에도 스크립트 실행 유지-r
: 모든 폴더를 재귀적으로 감시-e
: 주시할 이벤트create,move
create는 파일/폴더가 생성될 때, move는 폴더 이름을 바꿀 때 사용됩니다~/johndoe
: 감시 중인 폴더do if [[ $op == "CREATE,ISDIR" && $file == 'junk' || $file == 'secret' ]]
elif [[ $op == "MOVED_TO,ISDIR" && $file == 'junk' || $file == 'secret' ]]
cp ~/readme.txt "${dir}/${file}/readme.txt"
메모
기본 최대값은 8192입니다.
/proc/sys/fs/inotify/max_user_watches
에 작성하여 늘릴 수 있습니다.https://linux.die.net/man/1/inotifywait에서 자세히 알아보기
Reference
이 문제에 관하여(Linux에서 특정 이름으로 새로 생성된 폴더에 파일 자동 복사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devlogbook/auto-copy-a-file-to-the-newly-created-folder-with-a-specific-name-in-linux-2f54텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)