여러 개의 하위 디렉토리 (GUID를 사용하여 이름이 지정됨)가 있는데 여기에는 실행중인 컴퓨터 시뮬레이션의 결과 파일이 포함되어 있습니다. 파일의 이름은 모두 다음과 같이 지정됩니다. hydro_configuration_xxxx.xyz. 여기서 xxxx는 0000 이상의 4 자리 숫자입니다. 최신 파일은 가장 높은 4 자리 숫자입니다. 각 하위 디렉토리의 최신 파일과 해당 디렉토리를 나열하고 싶습니다.
따라서, 예를 들어, hydro_configuration_0000.xyz에서 hydro_configuration_0123.xyz로 파일 hydro_configuration_0000.xyz를 포함하는 서브 디렉토리 fc86783b-bcc5-4456-8964-049682ee81aa와 주어진 파일 hydro_configuration_0000.xyz를 hydro_configuration_3564로 포함하는 디렉토리 e608273d-35bd-442c-9de1-0ec184aa0d95 출력을 생성하는 명령이 필요합니다.
./fc86783b-bcc5-4456-8964-049682ee81aa/hydro_configuration_0123.xyz
./e608273d-35bd-442c-9de1-0ec184aa0d95/hydro_configuration_3564.xyz
답변
latestfile.sh
다음 내용으로 bash 스크립트 를 작성하십시오 .
#!/bin/bash
ls -1tr "$1" | tail -n1
실행 가능 chmod +x latestfile.sh
하도록 실행하십시오 .
그런 다음 다음 명령을 실행하십시오.
find test -mindepth 1 -type d -name "hydro_configuration_*" -printf "%p/" -a -exec ./latestfile.sh {} \;
패턴과 일치하는 모든 디렉토리를 찾아 이름을 인쇄 한 다음 /
최신 파일 이름을 표시합니다.