모든 tar.gz 파일을 찾아 다음 디렉터리로 이동합니다.

모든 tar.gz 파일을 찾아 다음 디렉터리로 이동합니다.

다음에서 tar.gz 파일에 액세스할 수 있습니다.

./parent/subfolder/tar_file_folder/*tar.gz

나는 그것들을 찾아서 ./parent/ 디렉토리로 옮기고 싶습니다. 그래서 한 레벨 위로 말이죠. 그러나 여러 하위 폴더와 tar_file_folders가 있습니다. 그래서 상위 폴더에서 명령을 호출하고 싶습니다.

나는 다음 명령줄을 시도해 보았습니다.

cd ./parent

find -name '*.tar.gz' -exec mv {} /path/to/single/target/directory \;

그러나 한 수준 위로 경로를 지정하는 방법을 잘 모르겠습니다. 도움이 필요하세요?

두 가지 경로 예. 이 경우 tar 파일을 ./AU-ASM 폴더 또는 ./AR-Vir/ 폴더로 이동해야 합니다.

./AU-ASM/[email protected]/LT51030752011211-SC20161014133947.tar.gz

./AR-Vir/[email protected]/LT51030751995263-SC20161014133510.tar.gz’

다음은 tar.gz가 저장되는 위치의 예입니다.

./Landsat_Data/AR-Vir/[email protected]/*tar.gz

명령줄은 ./Landsat_Data/ 디렉터리에서 실행해야 합니다.

답변1

다음과 같이 tar 파일을 반복하여 상위 디렉터리 ".."로 이동할 수 있습니다.

for tar in $(find path -name '*.tar.gz'); do mv $tar $(dirname $tar)/..; done

관련 정보