![gtar는 재귀적으로 압축을 풀지만 최상위 디렉토리에 유지됩니다.](https://linux55.com/image/222404/gtar%EB%8A%94%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%95%95%EC%B6%95%EC%9D%84%20%ED%92%80%EC%A7%80%EB%A7%8C%20%EC%B5%9C%EC%83%81%EC%9C%84%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%20%EC%9C%A0%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4..png)
새 하위 디렉터리를 만들지 않고 .tar 파일이 포함된 대규모 디렉터리의 압축을 반복적으로 풀려고 합니다.
이 명령을 사용하여 한 번에 하나의 작업을 성공적으로 수행할 수 있었습니다.
gtar -xf *.tar --strip-components 2
그러나 이 작업을 수행하려면 하위 디렉터리에 있어야 하며 위 디렉터리에서 일괄적으로 이 작업을 수행하고 싶습니다.
이것은 내 디렉토리 구조입니다.
/top_directory
/sub1
tarfile1.tar
/sub2
tarfile1.tar
/sub3
tarfile1.tar
/sub4
tarfile1.tar
따라서 이들을 모두 하나의 디렉토리로 옮긴 다음 모두 호출될 때 압축을 풀 수 없으므로 tarfile1.tar
하위 디렉토리에 남아 있어야 합니다.
그러나 나는 그들이 더 많은 하위 디렉터리를 만드는 것을 원하지 않습니다. 단지 그들이 포함하는 파일만 원할 뿐입니다.
내가 달성하고 싶은 것:
/top_directory
/sub1
tarfile1.tar
file1.txt
file2.txt
file3.txt
/sub2
tarfile1.tar
file1.txt
file2.txt
/sub3
tarfile1.tar
file1.txt
file2.txt
file3.txt
/sub4
tarfile1.tar
file1.txt
file2.txt
나는 이 명령에 가깝다고 생각합니다.
for file in *; do gtar -xf ${file} --strip-components 2; done
하지만 다음 오류가 반환됩니다: gtar: 이것은 tar 아카이브처럼 보이지 않습니다.
내가 시도할 때
for file in *.tar; do gtar -xf ${file} --strip-components 2; done
나도 같은 실수를 저질렀다.
압축을 푼 파일을 해당 디렉터리에 유지하면서 하위 디렉터리의 모든 파일을 압축 해제하려면 어떻게 해야 합니까?
저는 Solaris11을 사용하고 있습니다.