tar
'my_directory'라는 디렉토리에있는 파일 모음을 찾으려고 명령을 사용하여 원본을 제거하려고합니다.
tar -cvf files.tar my_directory --remove-files
그러나 디렉토리 자체가 아닌 디렉토리 내부의 개별 파일 만 제거합니다 (명령에서 지정한 것). 내가 여기서 무엇을 놓치고 있습니까?
편집하다:
예, 'remove-files'옵션이 상당히 리터럴이라고 가정합니다. 나는 그 시점에서 맨 페이지가 불분명하다는 것을 알았지 만. (리눅스에서는 디렉토리와 파일을 많이 구별하지 않는 경향이 있으며 때로는 같은 것이 아니라는 것을 잊어 버립니다). 합의는 디렉토리를 제거하지 않는다는 것입니다.
그러나이 질문을하기위한 주요 프롬프트 포인트는 tar가 절대 경로를 처리하는 것에서 비롯됩니다. 압축 할 파일의 상대 경로를 지정해야하므로 상위 디렉토리로 변경하여 파일을 적절하게 변경해야합니다. 내가 볼 수 있듯이 모든 종류의 후속 'rm'명령을 사용하면 해당 상황에서 잠재적으로 위험합니다. 따라서 타르 자체를 제거하여 작업을 단순화하기를 바랐습니다.
예를 들어, 백업 할 디렉토리 (예 : tar)가 쉘 변수로 포함 된 백업 스크립트를 상상해보십시오. 해당 쉘 변수 값을 잘못 입력 한 경우 마지막에 발생한 디렉토리에서 파일을 삭제할 수 있습니다.