모든 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

관련 정보