생성 날짜만 복제하고 싶은데 소스와 대상의 파일 이름이 다릅니다. 이름 부분은 동일하지만 확장자가 다릅니다. AVI 비디오는 한 디렉토리에 있고 MP4는 다른 디렉토리에 있습니다.
그래서 나는 touch --reference=file1 file2
.
하나의 파일에서는 훌륭하게 작동하지만 약 100개의 파일이 있습니다. 모든 소스 파일 이름이 포함된 텍스트 파일이 있습니다. 아, 그리고 많은 단어에는 공백과 아포스트로피도 포함되어 있습니다.
답변1
이 같은?
for avi in *.avi
do
mp4="${avi%%.avi}".mp4
if [ -e "$mp4" ]
then
touch --reference="$avi" "$mp4"
fi
done
답변2
변경하는 시간은 touch
파일 생성 시간이 아니라 수정 시간입니다(최신 Linux 파일 시스템은 파일 생성 시간을 지원하지만 현재 액세스하려면 특별한 도구가 필요하기 때문에 이는 다소 쓸모가 없습니다).
에서 필요에 따라 파일 수정 시간을 변경하려면 bash
참조 파일이 포함된 디렉터리에서 다음과 같은 루프를 사용할 수 있습니다.
for ref_file in *.avi; do
touch -c --reference="$ref_file" "target_dir/${ref_file%avi}mp4"
done