수정된 날짜와 함께 파일 이름을 추가하고 변수에 할당합니다.

수정된 날짜와 함께 파일 이름을 추가하고 변수에 할당합니다.

Unix 디렉터리에서 파일을 찾고 싶습니다. 파일이 있으면 파일 이름과 수정된 타임스탬프를 아래와 같은 변수에 할당하고 싶습니다.

variable=(find the file name, if exist add the filename with _a string _and modified time stamp)

가능합니까? 그것은 다음과 같이 보일 것입니다filename_string_modifieddate(yyyymmdd)

답변1

이 시도:

variable=`find . putYourConditionHere -exec ls -l --time-style +(%Y%m%d): {} \;|sed 's/.*\(([0-9]*)\): \(.*\)/\2_string_modifieddate\1/'`

find따라서 파일을 찾는 데 사용하고 -execexec 옵션을 사용하여 ls파일을 선택하여 --time-style원하는 형식을 얻은 다음 마지막으로 sed올바른 순서를 얻습니다. 변수에 전달하십시오.

:파일 이름에는 날짜가 포함될 수 없기 때문에 날짜를 포함했습니다 . 그렇지 않으면 ()또는 같은 내용이 포함된 파일 이름에 대해 스크립트가 실패합니다 (42).

답변2

var=$(find -name yourfile -prune -printf '%f_%TY%Tm%Td\n')

그러면 쉘 변수가 기존 파일 var로 채워집니다.yourfile_yyyymmdd iff

find위의 내용이 이해가 되지 않으면 다음 printf primitives과 같이 하세요.

var=$(find -name yourfile -prune -exec sh -c 'printf "%s_%s\n" "$1" "$(stat -c "%y" "$1" | cut -d " "-f1 | tr -d "-")"' {} {} \;)

관련 정보