file2
이후에 마지막으로 수정 된 것을 어떻게 확인할 수 file1
있습니까?
이 예에서는 perl
보다 최근에 수정되었습니다 stack
. 수정 시간을 기준으로 이러한 파일을 비교할 수있는 bash 또는 Linux 명령이 있습니까?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
답변
여기 에서 찾았습니다
for f in /abcd/xyz* do
[ "$f" -nt /abcd/test.txt ] && echo "file f$ found" done
답변
if [[ FILE1 -nt FILE2 ]]; then
echo FILE1 is newer than FILE2
fi
‘ 남자 테스트 ‘ 에서 가져 왔습니다 . 발췌 :
FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2
답변
이를 수행하는 다른 방법 :
find -name file2 -newer file1
file2가 file1보다 오래되었거나 같은 경우 null을 반환합니다. 최신 인 경우 file2의 이름과 디렉토리를 반환합니다.
Linux는 파일이 생성 된시기를 추적하지 않습니다. 이 테스트는 가장 최근의 수정 날짜 및 시간에 대한 것입니다.
답변
더 자세한 정보를 원하면 stat
명령을 사용할 수 있습니다
<tbielawa>@(fridge)[~/SuperUser] 03:15:10
$ touch firstFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:24
$ touch secondFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:45
$ stat firstFile
File: `firstFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151528 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:24.938721003 -0400
Modify: 2010-09-14 03:15:24.938721003 -0400
Change: 2010-09-14 03:15:24.938721003 -0400
<tbielawa>@(fridge)[~/SuperUser] 03:15:48
$ stat secondFile
File: `secondFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151529 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:45.074722792 -0400
Modify: 2010-09-14 03:15:45.074722792 -0400
Change: 2010-09-14 03:15:45.074722792 -0400
답변
echo $(($(date -r file1 +%s)-$(date -r file2 +%s)))
2208
결과가 0보다 크면 첫 번째 파일이 더 새 파일입니다. (리눅스에 저장되는 생성 시간이 아니라 마지막 수정 측면에서 더 낫습니다).
답변
이 링크에 따르면, 유닉스는 생성 날짜를 저장하지 않습니다.
http://www.issociate.de/board/post/302628/How_to_check_file_creation_date.html
그러나 마지막 액세스는 저장합니다.
마지막 액세스
ls -t # displays in order of date. So the first one is the
ls는 각 파일을 새 줄에 표시합니다.
따라서 ls -t는 첫 번째 줄 등에 최신 파일을 표시합니다.
- 자신을 사용하여 첫 번째 줄을 선택할 수 있습니다.
-
sed를 사용하여 첫 번째 줄을 선택할 수 있습니다.
ls -t php.exe php.ini | sed -n ‘1p’php.ini
할 수있는 -lt
당신이 파일을 지정하지 않으면 것을 볼 수 있지만 .. 그리고 디렉토리 .. 다음은 첫 번째 줄의 총을 제공 않습니다 당신은 같은 두 번째 행을 선택할 수 있도록$ls -lt | sed -n '2p'
좋은 것은
ls -t | head -n 1
또는
ls -lt | head
첫 번째 파일을 먼저 수정 한 순서대로 처음 10 행을 표시하며 어떤 파일인지 확인할 수 있습니다.
답변
다음은 약간의 스크립트입니다.
mtf0=`stat -c %Y file0`
mtf1=`stat -c %Y file1`
dt=$(( mtf1 - mtf0 ))
[[ $dt -gt 0 ]] && echo "File F1 is newer than file F0 "