디렉토리를 폴더로 이동한 후 디렉토리를 자동으로 .tar하는 방법 [닫기]

디렉토리를 폴더로 이동한 후 디렉토리를 자동으로 .tar하는 방법 [닫기]

다른 디렉터리(대상 디렉터리)로 이동할 때 해당 디렉터리와 동일한 이름을 가진 디렉터리를 자동으로 taring하는 .sh 쉘/bash 스크립트가 필요합니다.

예를 들어, /home/user/MyFiles/ 디렉토리가 있고 /MyFiles/ 디렉토리를 /home/user/new/로 이동하고 각 디렉토리를 포함하는 /home/user/new/ 내부에 MyFiles.tar를 생성하는 데 필요합니다. /home/user/MyFiles 파일은 MyFiles.tar에 포함되어 있습니다.

편집: 내가 언급하는 것을 잊어버린 것은 .tar에 필요한 디렉터리에 때때로 디렉터리 이름에 문자()가 포함되어 있으므로 따옴표를 사용하지 않으면 오류가 발생한다는 것을 알고 있으므로 이를 고려하는 스크립트가 필요하다는 것입니다. 및 () 문자가 존재합니다(예: tar -cvf "Example-(folder).tar" "Example-(folder)")

답변1

당신은 사용하고 싶을 수도 있습니다이노티파이(7)시설(로컬, 네트워크에 연결되지 않은 ext4 등의 파일 시스템 가정)

당신은 incron을 원할 수도 있습니다. 예를 들어 참조하십시오.이것. 일반적으로 incronfor IN_CREATE및 events를 사용하는 것으로 충분하다고 생각합니다 IN_MOVED. 바라보다포함(8)그리고증분 테이블(5)

하지만 동기와 높은 수준의 목표를 설명해야 합니다(귀하의 질문은 약간 비슷합니다).XY 문제). 버전 관리 시스템(혹은 백업?)이 필요한 것 같습니다. 나는 추천한다자식

자세히 알아보기인덱스 노드. 파일(실제로는 파일 시스템의 inode)이 다음을 가질 수 있다는 점을 기억하십시오.일부경로(또는 없음) 및 다음 위치에 나타납니다.일부디렉토리(예: 하드 링크 사용,링크(2)시스템 호출 및ln(1)주문하다).

다른 디렉터리(대상 디렉터리)로 이동할 때 해당 디렉터리와 동일한 이름을 가진 디렉터리를 자동으로 taring하는 .sh 쉘/bash 스크립트가 필요합니다.

이 목표는 모호합니다(왜냐하면 파일(사실상 익명 inode)은 다음을 가질 수 있기 때문입니다.일부이름과 등장일부디렉토리는 동시에 작성, 생성, 삭제, 자르기 및/또는 읽기가 가능합니다.일부프로세스).

어쩌면 정기적으로 다른 스크립트를 실행할 수도 있습니다(예:예약된 작업(5), 크론 작업이 일부 실행 중일 수 있습니다.만들다또는닌자이 명령은 inode의 수정 시간을 고려합니다....)

그런데 이 사이트는 "내 스크립트 작성" 서비스가 아닙니다. 다른 사람이 자신의 스크립트를 작성하는 것보다 위와 같은 프롬프트를 기대해야 합니다.

나는 독서를 추천한다고급 Linux 프로그래밍(내부 관점에서) Linux 시스템에 대해 더 잘 알아보세요.

파일 이름의 PS 문자 (는 문제가 되지 않습니다. 쉘 스크립트에서 변수 이름 주위에 적절한 큰따옴표와 중괄호를 사용하십시오. 그러나 Linux의 파일 및 파일 시스템은 예를 들어 Windows와 다르게 동작합니다. inode의 개념을 이해하는 것이 중요합니다.

관련 정보